From 03223c6016f3ef8d0d0726cea715ccaeb5e3836b Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Fri, 16 Apr 2021 14:46:17 +0200 Subject: [PATCH] refactor: git url functions --- lib/manager/git-submodules/extract.ts | 12 ++---------- lib/util/git/index.ts | 7 ------- lib/util/git/url.ts | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+), 17 deletions(-) create mode 100644 lib/util/git/url.ts diff --git a/lib/manager/git-submodules/extract.ts b/lib/manager/git-submodules/extract.ts index d74b9b52826cae..50e3e667c64834 100644 --- a/lib/manager/git-submodules/extract.ts +++ b/lib/manager/git-submodules/extract.ts @@ -3,8 +3,7 @@ import Git, { SimpleGit } from 'simple-git'; import upath from 'upath'; import * as datasourceGitRefs from '../../datasource/git-refs'; import { logger } from '../../logger'; -import { getHttpUrl } from '../../util/git'; -import * as hostRules from '../../util/host-rules'; +import { getHttpUrl, getRemoteUrlWithToken } from '../../util/git/url'; import type { ManagerConfig, PackageFile } from '../types'; type GitModule = { @@ -113,14 +112,7 @@ export default async function extractPackageFile( // hostRules only understands HTTP URLs // Find HTTP URL, then apply token let httpSubModuleUrl = getHttpUrl(subModuleUrl); - const hostRule = hostRules.find({ url: httpSubModuleUrl }); - if (hostRule?.token) { - logger.debug( - { httpSubModuleUrl }, - 'Found hostRules token for submodule' - ); - httpSubModuleUrl = getHttpUrl(subModuleUrl, hostRule.token); - } + httpSubModuleUrl = getRemoteUrlWithToken(httpSubModuleUrl); const currentValue = await getBranch( gitModulesPath, name, diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts index 79686b17974561..3ced1d68ead6f5 100644 --- a/lib/util/git/index.ts +++ b/lib/util/git/index.ts @@ -1,6 +1,5 @@ import URL from 'url'; import fs from 'fs-extra'; -import GitUrlParse from 'git-url-parse'; import Git, { DiffResult as DiffResult_, ResetMode, @@ -762,9 +761,3 @@ export function getUrl({ pathname: repository + '.git', }); } - -export function getHttpUrl(url: string, token?: string): string { - const parsedUrl = GitUrlParse(url); - parsedUrl.token = token; - return parsedUrl.toString('https'); -} diff --git a/lib/util/git/url.ts b/lib/util/git/url.ts new file mode 100644 index 00000000000000..fb671a3441cb09 --- /dev/null +++ b/lib/util/git/url.ts @@ -0,0 +1,21 @@ +import GitUrlParse from 'git-url-parse'; +import { logger } from '../../logger'; +import * as hostRules from '../host-rules'; + +export function getHttpUrl(url: string, token?: string): string { + const parsedUrl = GitUrlParse(url); + parsedUrl.token = token; + return parsedUrl.toString('https'); +} + +export function getRemoteUrlWithToken(url: string): string { + let remote = url; + + const hostRule = hostRules.find({ url }); + if (hostRule?.token) { + logger.debug(`Found hostRules token for url ${url}`); + remote = getHttpUrl(url, hostRule.token); + } + + return remote; +}