From fa71763a72eb8d54091b65b98752725a68aa2867 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov <zharinov@users.noreply.github.com> Date: Fri, 5 Nov 2021 13:45:29 +0300 Subject: [PATCH] refactor(gitlab): Extract getSourceUrl function (#12511) --- lib/datasource/gitlab-tags/index.ts | 8 ++++---- lib/datasource/gitlab-tags/util.ts | 13 +++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 lib/datasource/gitlab-tags/util.ts diff --git a/lib/datasource/gitlab-tags/index.ts b/lib/datasource/gitlab-tags/index.ts index 2098701568..b7c75fafca 100644 --- a/lib/datasource/gitlab-tags/index.ts +++ b/lib/datasource/gitlab-tags/index.ts @@ -1,15 +1,15 @@ import * as packageCache from '../../util/cache/package'; import { GitlabHttp } from '../../util/http/gitlab'; -import { regEx } from '../../util/regex'; import { joinUrlParts } from '../../util/url'; import type { GetReleasesConfig, ReleaseResult } from '../types'; import type { GitlabTag } from './types'; +import { defaultRegistryUrl, getDepHost, getSourceUrl } from './util'; export const id = 'gitlab-tags'; const gitlabApi = new GitlabHttp(id); export const customRegistrySupport = true; -export const defaultRegistryUrls = ['https://gitlab.com']; +export const defaultRegistryUrls = [defaultRegistryUrl]; export const registryStrategy = 'first'; const cacheNamespace = 'datasource-gitlab'; @@ -23,7 +23,7 @@ export async function getReleases({ registryUrl, lookupName: repo, }: GetReleasesConfig): Promise<ReleaseResult | null> { - const depHost = registryUrl.replace(regEx(/\/api\/v4$/), ''); + const depHost = getDepHost(registryUrl); const cachedResult = await packageCache.get<ReleaseResult>( cacheNamespace, @@ -51,7 +51,7 @@ export async function getReleases({ ).body; const dependency: ReleaseResult = { - sourceUrl: joinUrlParts(depHost, repo), + sourceUrl: getSourceUrl(repo, registryUrl), releases: null, }; dependency.releases = gitlabTags.map(({ name, commit }) => ({ diff --git a/lib/datasource/gitlab-tags/util.ts b/lib/datasource/gitlab-tags/util.ts new file mode 100644 index 0000000000..789424210c --- /dev/null +++ b/lib/datasource/gitlab-tags/util.ts @@ -0,0 +1,13 @@ +import { regEx } from '../../util/regex'; +import { joinUrlParts } from '../../util/url'; + +export const defaultRegistryUrl = 'https://gitlab.com'; + +export function getDepHost(registryUrl: string = defaultRegistryUrl): string { + return registryUrl.replace(regEx(/\/api\/v4$/), ''); +} + +export function getSourceUrl(lookupName: string, registryUrl?: string): string { + const depHost = getDepHost(registryUrl); + return joinUrlParts(depHost, lookupName); +} -- GitLab