Skip to content

Commit

Permalink
feat(templates): allow upgrades in commitMessage and prTitle (#…
Browse files Browse the repository at this point in the history
…29955)

Co-authored-by: Rhys Arkins <rhys@arkins.net>
  • Loading branch information
amezin and rarkins authored Jul 25, 2024
1 parent 0e9e938 commit 08549e2
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 16 deletions.
10 changes: 0 additions & 10 deletions lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles @typ
"upgrades": [
{
"branchName": "some-branch",
"commitMessage": "",
"depName": "some-dep",
"depTypes": undefined,
"displayFrom": "",
Expand All @@ -48,7 +47,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles @typ
{
"branchName": "some-branch",
"commitBodyTable": true,
"commitMessage": "",
"datasource": "npm",
"depName": "some-dep",
"depTypes": undefined,
Expand All @@ -67,7 +65,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles @typ
},
{
"branchName": "some-branch",
"commitMessage": "",
"depName": "@types/some-dep",
"depTypes": undefined,
"displayFrom": "",
Expand Down Expand Up @@ -116,7 +113,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles @typ
{
"branchName": "some-branch",
"commitBodyTable": true,
"commitMessage": "",
"datasource": "npm",
"depName": "some-dep",
"depTypes": undefined,
Expand All @@ -133,7 +129,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles @typ
{
"branchName": "some-branch",
"commitBodyTable": true,
"commitMessage": "",
"datasource": "npm",
"depName": "some-dep",
"depTypes": undefined,
Expand All @@ -150,7 +145,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles @typ
{
"branchName": "some-branch",
"commitBodyTable": true,
"commitMessage": "",
"currentValue": "0.5.7",
"currentVersion": "0.5.7",
"datasource": "npm",
Expand Down Expand Up @@ -196,7 +190,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles lock
"upgrades": [
{
"branchName": "some-branch",
"commitMessage": "",
"depTypes": undefined,
"displayFrom": "",
"displayPending": "",
Expand Down Expand Up @@ -242,7 +235,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles lock
"upgrades": [
{
"branchName": "some-branch",
"commitMessage": "",
"currentValue": "^1.0.0",
"currentVersion": "1.0.0",
"depTypes": undefined,
Expand All @@ -263,5 +255,3 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles lock
],
}
`;

exports[`workers/repository/updates/generate generateBranchConfig() handles upgrades: some-title (patch) 1`] = `"some-title (patch)"`;
112 changes: 109 additions & 3 deletions lib/workers/repository/updates/generate.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1058,16 +1058,22 @@ describe('workers/repository/updates/generate', () => {
});

it('handles upgrades', () => {
const branch = [
const baseBranchesUpdates = [
{
manager: 'some-manager',
depName: 'some-dep',
branchName: 'some-branch',
prTitle: 'some-title',
newValue: '0.6.0',
hasBaseBranches: true,
baseBranch: 'base-branch',
fileReplacePosition: 5,
},
];
expect(generateBranchConfig(baseBranchesUpdates)).toMatchObject({
prTitle: 'some-title (base-branch)',
});
const separateMinorUpdates = [
{
...requiredDefaultOptions,
manager: 'some-manager',
Expand All @@ -1080,6 +1086,11 @@ describe('workers/repository/updates/generate', () => {
updateType: 'minor' as UpdateType,
fileReplacePosition: 1,
},
];
expect(generateBranchConfig(separateMinorUpdates)).toMatchObject({
prTitle: 'some-title (minor)',
});
const separateMajorUpdates = [
{
...requiredDefaultOptions,
manager: 'some-manager',
Expand All @@ -1092,6 +1103,11 @@ describe('workers/repository/updates/generate', () => {
updateType: 'major' as UpdateType,
fileReplacePosition: 2,
},
];
expect(generateBranchConfig(separateMajorUpdates)).toMatchObject({
prTitle: 'some-title (major)',
});
const separatePatchUpdates = [
{
...requiredDefaultOptions,
manager: 'some-manager',
Expand All @@ -1105,9 +1121,19 @@ describe('workers/repository/updates/generate', () => {
updateType: 'patch' as UpdateType,
fileReplacePosition: 0,
},
];
expect(generateBranchConfig(separatePatchUpdates)).toMatchObject({
prTitle: 'some-title (patch)',
});
const branch = [
...baseBranchesUpdates,
...separateMinorUpdates,
...separateMajorUpdates,
...separatePatchUpdates,
] satisfies BranchUpgradeConfig[];
const res = generateBranchConfig(branch);
expect(res.prTitle).toMatchSnapshot('some-title (patch)');
expect(generateBranchConfig(branch)).toMatchObject({
prTitle: 'some-title (patch)',
});
});

it('combines prBodyColumns', () => {
Expand Down Expand Up @@ -1497,5 +1523,85 @@ describe('workers/repository/updates/generate', () => {
expect(upgrade.depTypes).toEqual(res.depTypes);
}
});

it('allows upgrades in commitMessage', () => {
const branch = [
{
...requiredDefaultOptions,
manager: 'some-manager',
branchName: 'dep1',
depName: 'dep1',
commitMessagePrefix:
'{{#each upgrades}}{{{prBodyDefinitions.Issue}}} {{/each}}',
newVersion: '1.2.0',
newValue: '1.2.0',
updateType: 'minor' as UpdateType,
fileReplacePosition: 1,
prBodyDefinitions: {
Issue: 'I1',
},
},
] satisfies BranchUpgradeConfig[];

expect(generateBranchConfig(branch)).toMatchObject({
commitMessage: 'I1 Update dependency dep1 to 1.2.0',
prTitle: 'I1 Update dependency dep1 to 1.2.0',
});
});

it('allows upgrades in commitMessage (group)', () => {
const commonOptions = {
...requiredDefaultOptions,
manager: 'some-manager',
branchName: 'deps',
groupName: 'deps',
group: {
commitMessageTopic: '{{{groupName}}}',
commitMessagePrefix:
'{{#each upgrades}}{{{prBodyDefinitions.Issue}}} {{/each}}',
},
};

const branch = [
{
...commonOptions,
depName: 'dep1',
newVersion: '1.2.0',
newValue: '1.2.0',
updateType: 'minor' as UpdateType,
fileReplacePosition: 1,
prBodyDefinitions: {
Issue: 'I1',
},
},
{
...commonOptions,
depName: 'dep2',
newVersion: '1.0.0',
newValue: '1.0.0',
updateType: 'major' as UpdateType,
fileReplacePosition: 2,
prBodyDefinitions: {
Issue: 'I2',
},
},
{
...commonOptions,
depName: 'dep3',
newVersion: '1.2.3',
newValue: '1.2.3',
updateType: 'patch' as UpdateType,
fileReplacePosition: 0,
prBodyDefinitions: {
Issue: 'I3',
},
},
] satisfies BranchUpgradeConfig[];
const res = generateBranchConfig(branch);
expect(res).toMatchObject({
commitMessage: 'I3 I2 I1 Update deps',
prTitle: 'I3 I2 I1 Update deps',
});
});
});
});
8 changes: 5 additions & 3 deletions lib/workers/repository/updates/generate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -302,9 +302,6 @@ export function generateBranchConfig(
} else if (semver.valid(toVersions[0])) {
upgrade.isRange = false;
}
// Use templates to generate strings
const commitMessage = compileCommitMessage(upgrade);
compilePrTitle(upgrade, commitMessage);
config.upgrades.push(upgrade);
if (upgrade.releaseTimestamp) {
if (releaseTimestamp!) {
Expand Down Expand Up @@ -357,6 +354,11 @@ export function generateBranchConfig(
...config.upgrades[0],
releaseTimestamp: releaseTimestamp!,
}; // TODO: fixme (#9666)

// Use templates to generate strings
const commitMessage = compileCommitMessage(config);
compilePrTitle(config, commitMessage);

config.dependencyDashboardApproval = config.upgrades.some(
(upgrade) => upgrade.dependencyDashboardApproval,
);
Expand Down

0 comments on commit 08549e2

Please sign in to comment.