UNPKG

renovate

Version:

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

87 lines (86 loc) 2.92 kB
import { logger } from "../../../logger/index.js"; import { getToolConfig } from "../../../util/exec/containerbase.js"; import { isToolName } from "../../../util/exec/types.js"; import { parsePreset } from "../../../config/presets/parse.js"; import { GiteaTagsDatasource } from "../../datasource/gitea-tags/index.js"; import { GithubTagsDatasource } from "../../datasource/github-tags/index.js"; import { GitlabTagsDatasource } from "../../datasource/gitlab-tags/index.js"; import { RenovateJson } from "./schema.js"; import { isNonEmptyArray, isNullOrUndefined } from "@sindresorhus/is"; //#region lib/modules/manager/renovate-config/extract.ts const supportedPresetSources = { github: GithubTagsDatasource.id, gitlab: GitlabTagsDatasource.id, gitea: GiteaTagsDatasource.id }; function extractPackageFile(content, packageFile) { logger.trace(`renovate-config.extractPackageFile(${packageFile})`); const config = RenovateJson.safeParse(content); if (!config.success) { logger.debug({ packageFile, err: config.error }, "Invalid Renovate Config"); return null; } const deps = []; for (const preset of config.data.extends ?? []) { const parsedPreset = parsePreset(preset); const datasource = supportedPresetSources[parsedPreset.presetSource]; if (isNullOrUndefined(datasource)) { if (parsedPreset.presetSource !== "internal") deps.push({ depName: parsedPreset.repo, skipReason: "unsupported-datasource" }); continue; } if (isNullOrUndefined(parsedPreset.tag)) { deps.push({ depName: parsedPreset.repo, skipReason: "unspecified-version" }); continue; } deps.push({ depName: parsedPreset.repo, datasource, currentValue: parsedPreset.tag }); } for (const [constraint, value] of Object.entries(config.data.constraints ?? {})) if (isToolName(constraint)) { const toolConfig = getToolConfig(constraint); deps.push({ ...toolConfig, depName: constraint, currentValue: value, depType: "tool-constraint", commitMessageTopic: "{{{depName}}} tool constraint" }); } else deps.push({ depName: constraint, currentValue: value, skipReason: "unsupported", depType: "constraint", commitMessageTopic: "{{{depName}}} constraint" }); for (const packageRule of config.data.packageRules ?? []) for (const [constraint, value] of Object.entries(packageRule.constraints ?? {})) if (isToolName(constraint)) { const toolConfig = getToolConfig(constraint); deps.push({ ...toolConfig, depName: constraint, currentValue: value, depType: "tool-constraint", commitMessageTopic: "{{{depName}}} tool constraint" }); } else deps.push({ depName: constraint, currentValue: value, skipReason: "unsupported", depType: "constraint", commitMessageTopic: "{{{depName}}} constraint" }); return isNonEmptyArray(deps) ? { deps } : null; } //#endregion export { extractPackageFile }; //# sourceMappingURL=extract.js.map