in src/common/pr-utils/grouping.ts [50:86]
export function groupPrs(prs: PrItem[], options: GroupPrOptions = {}): ReleaseNoteGroups<PrItem[]> {
const groups = prs.reduce<ReleaseNoteGroups<PrItem[]>>(
(groups, pr) => {
// If the pr has no release_note label at all (should usually not happen)
// it will be added to the missingLabel group, so we can warn about that in the UI.
if (!pr.labels.some((label) => label.name?.startsWith('release_note:'))) {
groups.missingLabel.push(pr);
return groups;
}
for (const label of pr.labels) {
switch (label.name) {
case 'release_note:fix':
groups.fixes.push(pr);
break;
case 'release_note:enhancement':
groups.enhancements.push(pr);
break;
case 'release_note:deprecation':
groups.deprecation.push(pr);
break;
case 'release_note:breaking':
groups.breaking.push(pr);
break;
case 'release_note:feature':
groups.features.push(pr);
break;
}
}
return groups;
},
{ fixes: [], enhancements: [], features: [], deprecation: [], breaking: [], missingLabel: [] }
);
return groups;
}