diff --git a/lib/modules/datasource/go/base.spec.ts b/lib/modules/datasource/go/base.spec.ts index b5c85a49870fe5..3f0209831718e9 100644 --- a/lib/modules/datasource/go/base.spec.ts +++ b/lib/modules/datasource/go/base.spec.ts @@ -378,6 +378,21 @@ describe('modules/datasource/go/base', () => { packageName: 'ssh://git.example.com/uncommon', }); }); + + it('returns null for mod imports', async () => { + const meta = + ''; + httpMock + .scope('https://buf.build') + .get('/gen/go/gogo/protobuf/protocolbuffers/go?go-get=1') + .reply(200, meta); + + const res = await BaseGoDatasource.getDatasource( + 'buf.build/gen/go/gogo/protobuf/protocolbuffers/go' + ); + + expect(res).toBeNull(); + }); }); }); }); diff --git a/lib/modules/datasource/go/base.ts b/lib/modules/datasource/go/base.ts index fbd4b6a997b381..6f9fe99ee4e44e 100644 --- a/lib/modules/datasource/go/base.ts +++ b/lib/modules/datasource/go/base.ts @@ -179,12 +179,17 @@ export class BaseGoDatasource { return null; } - const [, prefix, , goImportURL] = importMatch; + const [, prefix, proto, goImportURL] = importMatch; if (!goModule.startsWith(prefix)) { logger.trace({ goModule }, 'go-import header prefix not match'); return null; } + if (proto !== 'git') { + logger.trace({ goModule }, 'go-import header proto not git'); + return null; + } + logger.debug(`Go module: ${goModule} lookup import url ${goImportURL}`); // get server base url from import url const parsedUrl = URL.parse(goImportURL);