renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
35 lines • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractPackageFile = extractPackageFile;
const tslib_1 = require("tslib");
const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
const logger_1 = require("../../../logger");
const object_1 = require("../../../util/object");
const extract_1 = require("../dockerfile/extract");
const schema_1 = require("./schema");
function crowVersionDecider(config) {
const keys = ['clone', 'steps', 'pipeline', 'services'];
return Object.keys(config).filter((key) => keys.includes(key));
}
function extractPackageFile(content, packageFile, extractConfig) {
logger_1.logger.debug('crow .extractPackageFile()');
const result = schema_1.CrowConfig.safeParse(content);
if (!result.success) {
logger_1.logger.debug({ packageFile, err: result.error }, 'Invalid Crow Configuration schema');
return null;
}
const config = result.data;
const pipelineKeys = crowVersionDecider(config);
if (pipelineKeys.length === 0) {
logger_1.logger.debug({ packageFile }, "Couldn't identify dependencies");
return null;
}
// Image name/tags for services are only eligible for update if they don't
// use variables and if the image is not built locally
const deps = pipelineKeys.flatMap((pipelineKey) => Object.values((0, object_1.coerceObject)(config[pipelineKey]))
.filter((step) => is_1.default.string(step?.image))
.map((step) => (0, extract_1.getDep)(step.image, true, extractConfig.registryAliases)));
logger_1.logger.trace({ deps }, 'Crow Configuration image');
return deps.length ? { deps } : null;
}
//# sourceMappingURL=extract.js.map