UNPKG

renovate

Version:

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

106 lines (105 loc) 3.53 kB
import "../../constants/error-messages.js"; import { logger } from "../../logger/index.js"; import { getCache } from "../../util/cache/repository/index.js"; import { getCachedBehindBaseResult } from "../../util/git/behind-base-branch-cache.js"; import { getCachedConflictResult } from "../../util/git/conflicts-cache.js"; import { getCachedModifiedResult } from "../../util/git/modified-cache.js"; import { scm } from "../../modules/platform/scm.js"; import { platform } from "../../modules/platform/index.js"; import { getCachedPristineResult } from "../../util/git/pristine.js"; import { getPrCache } from "./update/pr/pr-cache.js"; //#region lib/workers/repository/cache.ts function generateBranchUpgradeCache(upgrade) { const { datasource, depName, depType, displayPending, packageName, fixedVersion, currentVersion, newVersion, currentValue, newValue, currentDigest, newDigest, packageFile, sourceUrl, remediationNotPossible, updateType } = upgrade; const result = { datasource, depName, depType, displayPending, fixedVersion, currentVersion, currentValue, newValue, newVersion, currentDigest, newDigest, packageFile, sourceUrl, remediationNotPossible, updateType }; if (packageName) result.packageName = packageName; return result; } async function generateBranchCache(branch) { const { baseBranch, branchName, prBlockedBy, prTitle, result } = branch; try { const branchSha = await scm.getBranchCommit(branchName); const baseBranchSha = await scm.getBranchCommit(baseBranch); const pristine = getCachedPristineResult(branchName); let prNo = null; let isModified; let isBehindBase; let isConflicted; let commitTimestamp; if (baseBranchSha && branchSha) { const branchPr = await platform.getBranchPr(branchName, baseBranch); if (branchPr) prNo = branchPr.number; isModified = getCachedModifiedResult(branchName, branchSha) ?? void 0; isBehindBase = getCachedBehindBaseResult(branchName, branchSha, baseBranch, baseBranchSha) ?? void 0; isConflicted = getCachedConflictResult(branchName, branchSha, baseBranch, baseBranchSha) ?? void 0; const commitDate = await scm.getBranchUpdateDate(branchName); if (commitDate) commitTimestamp = commitDate.toISO(); } else if (baseBranchSha && !branchSha && branch.prNo) prNo = branch.prNo; const automerge = !!branch.automerge; const upgrades = branch.upgrades ? branch.upgrades.map(generateBranchUpgradeCache) : []; const commitFingerprint = branch.commitFingerprint; const prCache = getPrCache(branchName); return { automerge, baseBranchSha, baseBranch, commitFingerprint, commitTimestamp, branchName, isBehindBase, isConflicted, isModified, prBlockedBy, pristine, prCache, prNo, prTitle, result, sha: branchSha, upgrades }; } catch (error) { const err = error.err ?? error; // istanbul ignore if if ([401, 404].includes(err.response?.statusCode)) { logger.warn({ err, branchName }, "HTTP error generating branch cache"); return null; } if (err.message === "repository-changed") throw err; logger.error({ err, branchName }, "Error generating branch cache"); return null; } } async function setBranchCache(branches) { const branchCaches = []; for (const branch of branches) { const branchCache = await generateBranchCache(branch); if (branchCache) branchCaches.push(branchCache); } getCache().branches = branchCaches; } //#endregion export { setBranchCache }; //# sourceMappingURL=cache.js.map