diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline9.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline9.yml new file mode 100644 index 0000000000000000000000000000000000000000..8baccb383c01c9374b08c3be07fca6d44ab02ad9 --- /dev/null +++ b/lib/modules/manager/buildkite/__fixtures__/pipeline9.yml @@ -0,0 +1,4 @@ +steps: + - plugins: + - ssh://git@bitbucket.org/some-org/some-plugin.git#v3.2.7: + - docker-compose#v1.3.2: diff --git a/lib/modules/manager/buildkite/extract.spec.ts b/lib/modules/manager/buildkite/extract.spec.ts index 0edd3aada9aa6381edefdb089f85e8f2a592493e..1fbcc9f10592046897fcd2e422ccb99add17ae2c 100644 --- a/lib/modules/manager/buildkite/extract.spec.ts +++ b/lib/modules/manager/buildkite/extract.spec.ts @@ -71,5 +71,22 @@ describe('modules/manager/buildkite/extract', () => { }; expect(res).toEqual([expectedPackageDependency]); }); + + it('extracts plugin tags from bitbucket', () => { + const res = extractPackageFile(Fixtures.get('pipeline9.yml'))?.deps; + const githubDependency: PackageDependency = { + currentValue: 'v1.3.2', + datasource: 'github-tags', + depName: 'docker-compose', + packageName: 'buildkite-plugins/docker-compose-buildkite-plugin', + }; + const bitbucketDependency: PackageDependency = { + currentValue: 'v3.2.7', + datasource: 'bitbucket-tags', + depName: 'some-org/some-plugin', + registryUrls: ['https://bitbucket.org'], + }; + expect(res).toEqual([bitbucketDependency, githubDependency]); + }); }); }); diff --git a/lib/modules/manager/buildkite/extract.ts b/lib/modules/manager/buildkite/extract.ts index 220ba988dfa62ded5c382d3c09d6979bb78c1ec6..87d0fdcc272c287ac2cb4f11c293210d14f4fbcf 100644 --- a/lib/modules/manager/buildkite/extract.ts +++ b/lib/modules/manager/buildkite/extract.ts @@ -1,6 +1,7 @@ import { logger } from '../../../logger'; import type { SkipReason } from '../../../types'; import { newlineRegex, regEx } from '../../../util/regex'; +import { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags'; import { GithubTagsDatasource } from '../../datasource/github-tags'; import { isVersion } from '../../versioning/semver'; import type { PackageDependency, PackageFileContent } from '../types'; @@ -33,11 +34,16 @@ export function extractPackageFile( logger.debug('Examining git plugin'); const { registry, gitPluginName } = gitPluginMatch.groups; const gitDepName = gitPluginName.replace(regEx('\\.git$'), ''); + + let datasource: string = GithubTagsDatasource.id; + if (registry === 'bitbucket.org') { + datasource = BitbucketTagsDatasource.id; + } const dep: PackageDependency = { depName: gitDepName, currentValue, registryUrls: ['https://' + registry], - datasource: GithubTagsDatasource.id, + datasource, }; deps.push(dep); continue; diff --git a/lib/modules/manager/buildkite/index.ts b/lib/modules/manager/buildkite/index.ts index 1a2d2d784de100710257c306e618ae68dc884c4a..3714bd2ee61ee044a296d9959d712ed814c602b8 100644 --- a/lib/modules/manager/buildkite/index.ts +++ b/lib/modules/manager/buildkite/index.ts @@ -1,4 +1,5 @@ import type { Category } from '../../../constants'; +import { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags'; import { GithubTagsDatasource } from '../../datasource/github-tags'; import { extractPackageFile } from './extract'; @@ -13,4 +14,7 @@ export const defaultConfig = { export const categories: Category[] = ['ci']; -export const supportedDatasources = [GithubTagsDatasource.id]; +export const supportedDatasources = [ + GithubTagsDatasource.id, + BitbucketTagsDatasource.id, +];