UNPKG

@secustor/backstage-plugin-renovate-common

Version:

Common functionalities for the renovate plugin

90 lines (84 loc) 2.27 kB
'use strict'; var catalogModel = require('@backstage/catalog-model'); var gitUrlParse = require('git-url-parse'); var is = require('@sindresorhus/is'); var schema = require('./schema.cjs.js'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var gitUrlParse__default = /*#__PURE__*/_interopDefaultCompat(gitUrlParse); var is__default = /*#__PURE__*/_interopDefaultCompat(is); function getTaskID(target) { const repo = getTargetRepo(target); return `renovate_run_${repo.host}_${repo.repository}`; } function getTargetRepo(target) { if (isTargetRepo(target)) { return target; } const url = getTargetURL(target); return { host: url.resource, repository: url.full_name }; } function getTargetRepoSafe(target) { try { return getTargetRepo(target); } catch (e) { return null; } } function parseUrl(url) { if (!url) { return null; } try { return new URL(url); } catch (err) { return null; } } function parseGitUrl(url) { if (!url) { return null; } try { return gitUrlParse__default.default(url); } catch (err) { return null; } } function getTargetURL(target) { let rawTargetUrl = is__default.default.string(target) ? target : target?.metadata.annotations?.[catalogModel.ANNOTATION_SOURCE_LOCATION]; if (rawTargetUrl?.startsWith("url:")) { rawTargetUrl = rawTargetUrl.replace("url:", ""); } if (!rawTargetUrl?.includes("://")) { rawTargetUrl = `https://${rawTargetUrl}`; } const targetUrl = parseGitUrl(rawTargetUrl); if (is__default.default.nullOrUndefined(targetUrl)) { throw new Error( `Could not identify platform url via ${JSON.stringify(target)}` ); } return targetUrl; } function isTargetRepo(value) { return schema.targetRepo.safeParse(value).success; } function isEntityRef(ref) { try { catalogModel.parseEntityRef(ref); return true; } catch (e) { return false; } } exports.getTargetRepo = getTargetRepo; exports.getTargetRepoSafe = getTargetRepoSafe; exports.getTargetURL = getTargetURL; exports.getTaskID = getTaskID; exports.isEntityRef = isEntityRef; exports.parseGitUrl = parseGitUrl; exports.parseUrl = parseUrl; //# sourceMappingURL=utils.cjs.js.map