backport
Version:
A CLI tool that automates the process of backporting commits
42 lines • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.autoMergeNowOrLater = void 0;
const mergePullRequest_1 = require("../github/v3/mergePullRequest");
const graphqlClient_1 = require("../github/v4/client/graphqlClient");
const enablePullRequestAutoMerge_1 = require("../github/v4/enablePullRequestAutoMerge");
const logger_1 = require("../logger");
const ora_1 = require("../ora");
async function autoMergeNowOrLater(options, pullNumber) {
const text = `Auto-merge: Enabling via "${options.autoMergeMethod}"`;
logger_1.logger.info(text);
const spinner = (0, ora_1.ora)(options.interactive, text).start();
if (options.dryRun) {
spinner.succeed();
return;
}
try {
try {
await (0, enablePullRequestAutoMerge_1.enablePullRequestAutoMerge)(options, pullNumber);
}
catch (e) {
if (!(e instanceof graphqlClient_1.GithubV4Exception)) {
throw e;
}
logger_1.logger.info(`Auto merge: Failed to enable auto merge for PR "#${pullNumber}" due to ${e.message}`);
if (!(0, enablePullRequestAutoMerge_1.isMissingStatusChecksError)(e)) {
throw e;
}
// if auto merge cannot be enabled due to missing status checks, the PR should be merged immediately
logger_1.logger.info('Auto merge: Attempting to merge immediately');
await (0, mergePullRequest_1.mergePullRequest)(options, pullNumber);
spinner.text = 'Auto-merge: Pull request was merged immediately';
}
spinner.succeed();
}
catch (e) {
logger_1.logger.warn(`Auto merge: An error occurred ${e}`);
spinner.fail();
}
}
exports.autoMergeNowOrLater = autoMergeNowOrLater;
//# sourceMappingURL=autoMergeNowOrLater.js.map