UNPKG

renovate

Version:

Automated dependency updates. Flexible so you don't need to be.

66 lines 2.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HelmReleaseExtractor = void 0; const tslib_1 = require("tslib"); const is_1 = tslib_1.__importDefault(require("@sindresorhus/is")); const logger_1 = require("../../../../../logger"); const url_1 = require("../../../../../util/url"); const helm_1 = require("../../../../datasource/helm"); const extract_1 = require("../../../dockerfile/extract"); const oci_1 = require("../../../helmv3/oci"); const base_1 = require("../../base"); const util_1 = require("../../util"); class HelmReleaseExtractor extends base_1.DependencyExtractor { getCheckList() { return [`"helm_release"`]; } extract(hclMap, _locks, config) { const dependencies = []; const helmReleases = hclMap?.resource?.helm_release; if (is_1.default.nullOrUndefined(helmReleases)) { return []; } /* v8 ignore next 7 -- needs test */ if (!is_1.default.plainObject(helmReleases)) { logger_1.logger.debug({ helmReleases }, 'Terraform: unexpected `helmReleases` value'); return []; } for (const helmRelease of Object.values(helmReleases).flat()) { const dep = { currentValue: helmRelease.version, depType: 'helm_release', depName: helmRelease.chart, datasource: helm_1.HelmDatasource.id, }; dependencies.push(dep); if (!is_1.default.nonEmptyString(helmRelease.chart)) { dep.skipReason = 'invalid-name'; } else if ((0, oci_1.isOCIRegistry)(helmRelease.chart)) { // For oci charts, we remove the oci:// and use the docker datasource dep.depName = (0, oci_1.removeOCIPrefix)(helmRelease.chart); this.processOCI(dep.depName, config, dep); } else if ((0, util_1.checkIfStringIsPath)(helmRelease.chart)) { dep.skipReason = 'local-chart'; } else if (is_1.default.nonEmptyString(helmRelease.repository)) { if ((0, oci_1.isOCIRegistry)(helmRelease.repository)) { // For oci charts, we remove the oci:// and use the docker datasource this.processOCI((0, url_1.joinUrlParts)((0, oci_1.removeOCIPrefix)(helmRelease.repository), helmRelease.chart), config, dep); } else { dep.registryUrls = [helmRelease.repository]; } } } return dependencies; } processOCI(depName, config, dep) { const { packageName, datasource } = (0, extract_1.getDep)(depName, false, config.registryAliases); dep.packageName = packageName; dep.datasource = datasource; } } exports.HelmReleaseExtractor = HelmReleaseExtractor; //# sourceMappingURL=helm-release.js.map