UNPKG

renovate

Version:

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

55 lines 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HelmDatasource = void 0; const tslib_1 = require("tslib"); const logger_1 = require("../../../logger"); const decorator_1 = require("../../../util/cache/package/decorator"); const url_1 = require("../../../util/url"); const helmVersioning = tslib_1.__importStar(require("../../versioning/helm")); const datasource_1 = require("../datasource"); const schema_1 = require("./schema"); class HelmDatasource extends datasource_1.Datasource { static id = 'helm'; constructor() { super(HelmDatasource.id); } defaultRegistryUrls = ['https://charts.helm.sh/stable']; defaultConfig = { commitMessageTopic: 'Helm release {{depName}}', }; defaultVersioning = helmVersioning.id; releaseTimestampSupport = true; releaseTimestampNote = 'The release timstamp is determined from the `created` field in the results.'; sourceUrlSupport = 'package'; sourceUrlNote = 'The source URL is determined from the `home` field or the `sources` field in the results.'; async getRepositoryData(helmRepository) { const { val, err } = await this.http .getYamlSafe('index.yaml', { baseUrl: (0, url_1.ensureTrailingSlash)(helmRepository) }, schema_1.HelmRepositorySchema) .unwrap(); if (err) { this.handleGenericErrors(err); } return val; } async getReleases({ packageName, registryUrl: helmRepository, }) { /* v8 ignore next 3 -- should never happen */ if (!helmRepository) { return null; } const repositoryData = await this.getRepositoryData(helmRepository); const releases = repositoryData[packageName]; if (!releases) { logger_1.logger.debug({ dependency: packageName }, `Entry ${packageName} doesn't exist in index.yaml from ${helmRepository}`); return null; } return releases; } } exports.HelmDatasource = HelmDatasource; tslib_1.__decorate([ (0, decorator_1.cache)({ namespace: `datasource-${HelmDatasource.id}`, key: (helmRepository) => `repository-data:${helmRepository}`, }) ], HelmDatasource.prototype, "getRepositoryData", null); //# sourceMappingURL=index.js.map