backport
Version:
A CLI tool that automates the process of backporting commits
37 lines • 1.44 kB
JavaScript
import { BackportError } from '../backport-error.js';
import { mergePullRequest } from '../github/v3/merge-pull-request.js';
import { enablePullRequestAutoMerge } from '../github/v4/enable-pull-request-auto-merge.js';
import { logger } from '../logger.js';
import { ora } from '../ora.js';
export async function autoMergeNowOrLater(options, pr) {
const text = `Auto-merge: Enabling via "${options.autoMergeMethod}"`;
logger.info(text);
const spinner = ora(options.interactive, text).start();
if (options.dryRun) {
spinner.succeed();
return;
}
try {
try {
await enablePullRequestAutoMerge(options, pr);
}
catch (error) {
if (!(error instanceof BackportError)) {
throw error;
}
logger.info(`Auto merge: Failed to enable auto merge for PR "#${pr}" due to ${error.message}`);
if (error.errorContext.code !== 'auto-merge-not-available-exception') {
throw error;
}
logger.info('Auto merge: Attempting to merge immediately');
await mergePullRequest(options, pr);
spinner.text = 'Auto-merge: Pull request was merged immediately';
}
spinner.succeed();
}
catch (error) {
logger.warn(`Auto merge: An error occurred ${error}`);
spinner.fail();
}
}
//# sourceMappingURL=auto-merge-now-or-later.js.map