renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
54 lines (53 loc) • 1.99 kB
JavaScript
import { GlobalConfig } from "../../../../config/global.js";
import { logger } from "../../../../logger/index.js";
import { getInheritedOrGlobal } from "../../../../util/common.js";
import { toSha256 } from "../../../../util/hash.js";
import { scm } from "../../../../modules/platform/scm.js";
import { getOnboardingConfigContents } from "./config.js";
import { getDefaultConfigFileName, getSemanticCommitPrTitle } from "../common.js";
import { OnboardingCommitMessageFactory } from "./commit-message.js";
//#region lib/workers/repository/onboarding/branch/rebase.ts
async function rebaseOnboardingBranch(config, previousConfigHash) {
logger.debug("Checking if onboarding branch needs rebasing");
const platform = GlobalConfig.get("platform");
if (![
"github",
"gitea",
"gitlab"
].includes(platform)) {
logger.debug(`Skipping rebase as ${platform} does not support html comments`);
return null;
}
const configFile = getDefaultConfigFileName();
const contents = await getOnboardingConfigContents(config, configFile);
const currentConfigHash = toSha256(contents);
if (previousConfigHash === currentConfigHash) {
logger.debug("No rebase needed");
return null;
}
logger.debug({
previousConfigHash,
currentConfigHash
}, "Rebasing onboarding branch");
if (GlobalConfig.get("dryRun")) {
logger.info("DRY-RUN: Would rebase files in onboarding branch");
return null;
}
const commitMessage = new OnboardingCommitMessageFactory(config, configFile).create();
const prTitle = config.semanticCommits === "enabled" ? getSemanticCommitPrTitle(config) : getInheritedOrGlobal("onboardingPrTitle");
return scm.commitAndPush({
baseBranch: config.baseBranch,
branchName: getInheritedOrGlobal("onboardingBranch"),
files: [{
type: "addition",
path: configFile,
contents
}],
message: commitMessage.toString(),
platformCommit: config.platformCommit,
prTitle
});
}
//#endregion
export { rebaseOnboardingBranch };
//# sourceMappingURL=rebase.js.map