const branchWorker = require('../../branch'); const { getPrsRemaining } = require('./limits'); module.exports = { writeUpdates, }; async function writeUpdates(config, packageFiles, allBranches) { let branches = allBranches; logger.info( { branchList: branches.map(b => b.branchName).sort() }, `Processing ${branches.length} branch${branches.length !== 1 ? 'es' : ''}` ); if (!config.mirrorMode) { branches = branches.filter(branchConfig => { if (branchConfig.blockedByPin) { logger.info(`Branch ${branchConfig.branchName} is blocked by a Pin PR`); return false; } return true; }); } let prsRemaining = await getPrsRemaining(config, branches); for (const branch of branches) { const res = await branchWorker.processBranch( { ...branch, prHourlyLimitReached: prsRemaining <= 0, }, packageFiles ); if (res === 'pr-closed' || res === 'automerged') { // Stop procesing other branches because base branch has been changed return res; } prsRemaining -= res === 'pr-created' ? 1 : 0; } return 'done'; }