diff --git a/lib/workers/branch/status-checks.js b/lib/workers/branch/status-checks.js index d5d931a1b07515ed5d96d1bce16b0d3825ccd666..4e0a7316d71f5efc9e1c20a5767808f1e488a77e 100644 --- a/lib/workers/branch/status-checks.js +++ b/lib/workers/branch/status-checks.js @@ -6,17 +6,14 @@ async function setUnpublishable(config) { if (!config.unpublishSafe) { return; } - const canBeUnpublished = config.upgrades.some( - upgrade => upgrade.canBeUnpublished - ); const context = 'renovate/unpublish-safe'; const existingState = await platform.getBranchStatusCheck( config.branchName, context ); // Set canBeUnpublished status check - const state = canBeUnpublished ? 'pending' : 'success'; - const description = canBeUnpublished + const state = config.canBeUnpublished ? 'pending' : 'success'; + const description = config.canBeUnpublished ? 'Packages < 24 hours old can be unpublished' : 'Packages cannot be unpublished'; // Check if state needs setting diff --git a/lib/workers/repository/updates/generate.js b/lib/workers/repository/updates/generate.js index 7e0b073c50951e3742b9d8cfcbf671a0923fa55b..b37ab0d161e07da406e88dfed1421112deb8a276 100644 --- a/lib/workers/repository/updates/generate.js +++ b/lib/workers/repository/updates/generate.js @@ -6,7 +6,7 @@ const { DateTime } = require('luxon'); function generateBranchConfig(branchUpgrades) { logger.debug(`generateBranchConfig(${branchUpgrades.length})`); logger.trace({ config: branchUpgrades }); - const config = { + let config = { upgrades: [], }; const hasGroupName = branchUpgrades[0].groupName !== null; @@ -136,7 +136,12 @@ function generateBranchConfig(branchUpgrades) { config.hasTypes = true; } // Now assign first upgrade's config as branch config - return { ...config, ...config.upgrades[0], releaseTimestamp }; + config = { ...config, ...config.upgrades[0], releaseTimestamp }; + config.canBeUnpublished = config.upgrades.some( + upgrade => upgrade.canBeUnpublished + ); + config.automerge = config.upgrades.every(upgrade => upgrade.automerge); + return config; } module.exports = { diff --git a/test/workers/branch/status-checks.spec.js b/test/workers/branch/status-checks.spec.js index 28c1d21432138f914e7ee84266c05fa48c51e3e9..f2926d73e8b0b4e00f826bb17995b84fa05a3d95 100644 --- a/test/workers/branch/status-checks.spec.js +++ b/test/workers/branch/status-checks.spec.js @@ -9,7 +9,6 @@ describe('workers/branch/status-checks', () => { beforeEach(() => { config = { ...defaultConfig, - upgrades: [], }; }); afterEach(() => { @@ -26,21 +25,15 @@ describe('workers/branch/status-checks', () => { expect(platform.setBranchStatus.mock.calls.length).toBe(1); }); it('finds canBeUnpublished false and sets status', async () => { + config.canBeUnpublished = true; config.unpublishSafe = true; - config.upgrades = [ - { canBeUnpublished: true }, - { canBeUnpublished: false }, - ]; await setUnpublishable(config); expect(platform.getBranchStatusCheck.mock.calls.length).toBe(1); expect(platform.setBranchStatus.mock.calls.length).toBe(1); }); it('finds canBeUnpublished false and skips status', async () => { config.unpublishSafe = true; - config.upgrades = [ - { canBeUnpublished: false }, - { canBeUnpublished: false }, - ]; + config.canBeUnpublished = false; platform.getBranchStatusCheck.mockReturnValueOnce('success'); await setUnpublishable(config); expect(platform.getBranchStatusCheck.mock.calls.length).toBe(1); diff --git a/test/workers/repository/updates/generate.spec.js b/test/workers/repository/updates/generate.spec.js index 3145e22bf92f1d62414b34a1f53df86fc6602803..4ddd203157454da1d2ba00d3363e9ff3a061ffff 100644 --- a/test/workers/repository/updates/generate.spec.js +++ b/test/workers/repository/updates/generate.spec.js @@ -93,6 +93,8 @@ describe('workers/repository/updates/generate', () => { foo: 2, }, releaseTimestamp: '2017-02-07T20:01:41+00:00', + canBeUnpublished: false, + automerge: true, }, { depName: 'some-other-dep', @@ -108,12 +110,16 @@ describe('workers/repository/updates/generate', () => { foo: 2, }, releaseTimestamp: '2017-02-06T20:01:41+00:00', + canBeUnpublished: true, + automerge: false, }, ]; const res = generateBranchConfig(branch); expect(res.foo).toBe(2); expect(res.groupName).toBeDefined(); expect(res.releaseTimestamp).toEqual('2017-02-07T20:01:41+00:00'); + expect(res.canBeUnpublished).toBe(true); + expect(res.automerge).toBe(false); }); it('groups multiple upgrades different version', () => { const branch = [