UNPKG

renovate

Version:

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

77 lines (76 loc) 2.54 kB
import { logger } from "../../../logger/index.js"; import { parseUrl } from "../../../util/url.js"; import { GitTagsDatasource } from "../../datasource/git-tags/index.js"; import { GithubTagsDatasource } from "../../datasource/github-tags/index.js"; import { PuppetForgeDatasource } from "../../datasource/puppet-forge/index.js"; import { isGithubUrl, parseGitOwnerRepo } from "./common.js"; import { parsePuppetfile } from "./puppetfile-parser.js"; //#region lib/modules/manager/puppet/extract.ts function parseForgeDependency(module, forgeUrl) { const dep = { depName: module.name, datasource: PuppetForgeDatasource.id, packageName: module.name, currentValue: module.version }; if (forgeUrl) dep.registryUrls = [forgeUrl]; return dep; } function parseGitDependency(module) { const moduleName = module.name; const git = module.tags?.get("git"); const tag = module.tags?.get("tag"); if (!git || !tag) return { depName: moduleName, sourceUrl: git, skipReason: "invalid-version" }; const parsedUrl = parseUrl(git); const githubUrl = isGithubUrl(git, parsedUrl); if (githubUrl && parsedUrl && parsedUrl.protocol !== "https:") { logger.debug(`Access to github is only allowed for https, your url was: ${git}`); return { depName: moduleName, sourceUrl: git, skipReason: "invalid-url" }; } const gitOwnerRepo = parseGitOwnerRepo(git, githubUrl); if (!gitOwnerRepo) return { depName: moduleName, sourceUrl: git, skipReason: "invalid-url" }; const packageDependency = { depName: moduleName, packageName: git, sourceUrl: git, gitRef: true, currentValue: tag, datasource: GitTagsDatasource.id }; if (githubUrl) { packageDependency.packageName = gitOwnerRepo; packageDependency.datasource = GithubTagsDatasource.id; } return packageDependency; } function isGitModule(module) { return module.tags?.has("git") ?? false; } function extractPackageFile(content) { logger.trace("puppet.extractPackageFile()"); const puppetFile = parsePuppetfile(content); const deps = []; for (const forgeUrl of puppetFile.getForges()) for (const module of puppetFile.getModulesOfForge(forgeUrl)) { let packageDependency; if (isGitModule(module)) packageDependency = parseGitDependency(module); else packageDependency = parseForgeDependency(module, forgeUrl); if (module.skipReason) packageDependency.skipReason = module.skipReason; deps.push(packageDependency); } return deps.length ? { deps } : null; } //#endregion export { extractPackageFile }; //# sourceMappingURL=extract.js.map