renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
74 lines (73 loc) • 3.25 kB
JavaScript
import { GlobalConfig } from "../../../config/global.js";
import { logger } from "../../../logger/index.js";
import { platform } from "../../../modules/platform/index.js";
import { ensureComment } from "../../../modules/platform/comment.js";
import { getDepWarningsOnboardingPR, getErrors, getWarnings } from "../errors-warnings.js";
import { getBaseBranchDesc } from "../onboarding/pr/base-branch.js";
import { getScheduleDesc } from "../onboarding/pr/config-description.js";
import { getExpectedPrList } from "../onboarding/pr/pr-list.js";
import { isArray, isString } from "@sindresorhus/is";
//#region lib/workers/repository/reconfigure/comment.ts
async function ensureReconfigurePrComment(config, packageFiles, branches, branchName, pr) {
logger.debug("ensureReconfigurePrComment()");
logger.trace({ config });
let prCommentTemplate = `This is a reconfigure PR comment to help you understand and re-configure your renovate bot settings. If this Reconfigure PR were to be merged, we'd expect to see the following outcome:\n\n`;
prCommentTemplate += `
---
{{PACKAGE FILES}}
{{CONFIG}}
{{BASEBRANCH}}
{{PRLIST}}
{{WARNINGS}}
{{ERRORS}}
`;
let prBody = prCommentTemplate;
if (packageFiles && Object.entries(packageFiles).length) {
let files = [];
for (const [manager, managerFiles] of Object.entries(packageFiles)) files = files.concat(managerFiles.map((file) => ` * \`${file.packageFile}\` (${manager})`));
prBody = `${prBody.replace("{{PACKAGE FILES}}", `### Detected Package Files\n\n${files.join("\n")}`)}\n`;
} else prBody = prBody.replace("{{PACKAGE FILES}}\n", "");
let configDesc = "";
if (GlobalConfig.get("dryRun")) logger.info(`DRY-RUN: Would check branch ${branchName}`);
else configDesc = getConfigDesc(config);
prBody = prBody.replace("{{CONFIG}}\n", configDesc);
prBody = prBody.replace("{{WARNINGS}}\n", getWarnings(config) + getDepWarningsOnboardingPR(packageFiles, config));
prBody = prBody.replace("{{ERRORS}}\n", getErrors(config));
prBody = prBody.replace("{{BASEBRANCH}}\n", getBaseBranchDesc(config));
prBody = prBody.replace("{{PRLIST}}\n", getExpectedPrList(config, branches));
logger.trace(`prBody:\n${prBody}`);
prBody = platform.massageMarkdown(prBody);
if (GlobalConfig.get("dryRun")) {
logger.info("DRY-RUN: Would ensure comment");
return true;
}
return await ensureComment({
number: pr.number,
topic: "Reconfigure PR Results",
content: prBody
});
}
function getDescriptionArray(config) {
logger.debug("getDescriptionArray()");
logger.trace({ config });
return (isArray(config.description, isString) ? config.description : []).concat(getScheduleDesc(config));
}
function getConfigDesc(config) {
logger.debug("getConfigDesc()");
logger.trace({ config });
const descriptionArr = getDescriptionArray(config);
if (!descriptionArr.length) {
logger.debug("No config description found");
return "";
}
logger.debug(`Found description array with length:${descriptionArr.length}`);
let desc = `\n### Configuration Summary\n\nBased on the default config's presets, Renovate will:\n\n`;
descriptionArr.forEach((d) => {
desc += ` - ${d}\n`;
});
desc += "\n\n---\n";
return desc;
}
//#endregion
export { ensureReconfigurePrComment };
//# sourceMappingURL=comment.js.map