From 6f4c38990400f2caea83172616d08027ede1f30f Mon Sep 17 00:00:00 2001 From: Peter Svensson <peter@sparetimecoders.com> Date: Tue, 3 Oct 2023 12:08:17 +0200 Subject: [PATCH] feat: support extracting buildkite plugins from Bitbucket Cloud (#24980) Co-authored-by: Rhys Arkins <rhys@arkins.net> --- .../buildkite/__fixtures__/pipeline9.yml | 4 ++++ lib/modules/manager/buildkite/extract.spec.ts | 17 +++++++++++++++++ lib/modules/manager/buildkite/extract.ts | 8 +++++++- lib/modules/manager/buildkite/index.ts | 6 +++++- 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline9.yml diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline9.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline9.yml new file mode 100644 index 0000000000..8baccb383c --- /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 0edd3aada9..1fbcc9f105 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 220ba988df..87d0fdcc27 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 1a2d2d784d..3714bd2ee6 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, +]; -- GitLab