UNPKG

renovate

Version:

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

102 lines 4.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkConfigMigrationBranch = checkConfigMigrationBranch; exports.migrationPrExists = migrationPrExists; const tslib_1 = require("tslib"); const is_1 = tslib_1.__importDefault(require("@sindresorhus/is")); const global_1 = require("../../../../config/global"); const logger_1 = require("../../../../logger"); const platform_1 = require("../../../../modules/platform"); const scm_1 = require("../../../../modules/platform/scm"); const common_1 = require("../common"); const commit_message_1 = require("./commit-message"); const create_1 = require("./create"); const rebase_1 = require("./rebase"); async function checkConfigMigrationBranch(config, migratedConfigData) { logger_1.logger.debug('checkConfigMigrationBranch()'); const configMigrationCheckboxState = config.dependencyDashboardChecks?.configMigrationCheckboxState; if (!config.configMigration) { if (is_1.default.undefined(configMigrationCheckboxState) || configMigrationCheckboxState === 'no-checkbox' || configMigrationCheckboxState === 'unchecked') { logger_1.logger.debug('Config migration needed but config migration is disabled and checkbox not checked or not present.'); return { result: 'no-migration-branch' }; } } const configMigrationBranch = (0, common_1.getMigrationBranchName)(config); const branchPr = await migrationPrExists(configMigrationBranch, config.baseBranch); // handles open/autoclosed PRs if (!branchPr) { const commitMessageFactory = new commit_message_1.ConfigMigrationCommitMessageFactory(config, migratedConfigData.filename); const prTitle = commitMessageFactory.getPrTitle(); const closedPrConfig = { branchName: configMigrationBranch, prTitle, state: 'closed', targetBranch: config.baseBranch, }; // handles closed PR const closedPr = await platform_1.platform.findPr(closedPrConfig); // found closed migration PR if (closedPr) { logger_1.logger.debug('Closed config migration PR found.'); // if a closed pr exists and the checkbox for config migration is not checked // return no-migration-branch result so that the checkbox gets added again // we only want to create a config migration pr if the checkbox is checked if (configMigrationCheckboxState !== 'checked') { logger_1.logger.debug('Config migration is enabled and needed. But a closed pr exists and checkbox is not checked. Skipping migration branch creation.'); return { result: 'no-migration-branch' }; } logger_1.logger.debug('Closed migration PR found and checkbox is checked. Try to delete this old branch and create a new one.'); await handlePr(config, closedPr); } } let result; if (branchPr) { logger_1.logger.debug('Config Migration PR already exists'); if (await isMigrationBranchModified(config, configMigrationBranch)) { logger_1.logger.debug('Config Migration branch has been modified. Skipping branch rebase.'); result = 'migration-branch-modified'; } else { await (0, rebase_1.rebaseMigrationBranch)(config, migratedConfigData); if (platform_1.platform.refreshPr) { const configMigrationPr = await platform_1.platform.getBranchPr(configMigrationBranch, config.baseBranch); if (configMigrationPr) { await platform_1.platform.refreshPr(configMigrationPr.number); } } result = 'migration-branch-exists'; } } else { logger_1.logger.debug('Config Migration PR does not exist'); logger_1.logger.debug('Need to create migration PR'); await (0, create_1.createConfigMigrationBranch)(config, migratedConfigData); result = 'migration-branch-exists'; } if (!global_1.GlobalConfig.get('dryRun')) { await scm_1.scm.checkoutBranch(configMigrationBranch); } return { migrationBranch: configMigrationBranch, result, }; } async function migrationPrExists(branchName, targetBranch) { return await platform_1.platform.getBranchPr(branchName, targetBranch); } async function handlePr(config, pr) { if (await scm_1.scm.branchExists(pr.sourceBranch)) { if (global_1.GlobalConfig.get('dryRun')) { logger_1.logger.info('DRY-RUN: Would delete branch ' + pr.sourceBranch); } else { await scm_1.scm.deleteBranch(pr.sourceBranch); } } } async function isMigrationBranchModified(config, configMigrationBranch) { const baseBranch = config.defaultBranch; return await scm_1.scm.isBranchModified(configMigrationBranch, baseBranch); } //# sourceMappingURL=index.js.map