diff --git a/lib/workers/repository/updates/generate.js b/lib/workers/repository/updates/generate.js index af10baaf9d20486ce25c35f11b132e4f83fde07f..b988e387bd77804993b22179c475c00f62167c19 100644 --- a/lib/workers/repository/updates/generate.js +++ b/lib/workers/repository/updates/generate.js @@ -13,6 +13,7 @@ function generateBranchConfig(branchUpgrades) { logger.debug(`hasGroupName: ${hasGroupName}`); // Use group settings only if multiple upgrades or lazy grouping is disabled const depNames = []; + const newValue = []; const toVersions = []; branchUpgrades.forEach(upg => { if (!depNames.includes(upg.depName)) { @@ -21,12 +22,18 @@ function generateBranchConfig(branchUpgrades) { if (!toVersions.includes(upg.toVersion)) { toVersions.push(upg.toVersion); } + if (upg.commitMessageExtra) { + const extra = handlebars.compile(upg.commitMessageExtra)(upg); + if (!newValue.includes(extra)) { + newValue.push(extra); + } + } }); const groupEligible = depNames.length > 1 || toVersions.length > 1 || branchUpgrades[0].lazyGrouping === false; - if (branchUpgrades.length > 1 && !groupEligible) { + if (newValue.length > 1 && !groupEligible) { // eslint-disable-next-line no-param-reassign branchUpgrades[0].commitMessageExtra = `to v${toVersions[0]}`; } diff --git a/test/workers/repository/updates/generate.spec.js b/test/workers/repository/updates/generate.spec.js index d5455e4a934d204e9f6ffa89073c89b5b347d368..762846c8d68174855927661b3ff9d040acd6491f 100644 --- a/test/workers/repository/updates/generate.spec.js +++ b/test/workers/repository/updates/generate.spec.js @@ -165,6 +165,45 @@ describe('workers/repository/updates/generate', () => { expect(res.groupName).toBeDefined(); expect(res.releaseTimestamp).toEqual('2017-02-08T20:01:41+00:00'); }); + it('fixes different messages', () => { + const branch = [ + { + depName: 'depA', + groupName: 'some-group', + branchName: 'some-branch', + prTitle: 'some-title', + commitMessageExtra: + 'to {{#if isMajor}}v{{newMajor}}{{else}}{{#unless isRange}}v{{/unless}}{{newValue}}{{/if}}', + lazyGrouping: true, + foo: 1, + newValue: '>= 5.1.2', + toVersion: '5.1.2', + group: { + foo: 2, + }, + releaseTimestamp: '2017-02-07T20:01:41+00:00', + }, + { + depName: 'depA', + groupName: 'some-group', + branchName: 'some-branch', + prTitle: 'some-title', + commitMessageExtra: + 'to {{#if isMajor}}v{{newMajor}}{{else}}{{#unless isRange}}v{{/unless}}{{newValue}}{{/if}}', + lazyGrouping: true, + foo: 1, + newValue: '^5,1,2', + toVersion: '5.1.2', + group: { + foo: 2, + }, + releaseTimestamp: '2017-02-08T20:01:41+00:00', + }, + ]; + const res = generateBranchConfig(branch); + expect(res.foo).toBe(1); + expect(res.groupName).toBeUndefined(); + }); it('uses semantic commits', () => { const branch = [ {