Skip to content

Commit 01e34a2

Browse files
Merge pull request #11 from wemogy/main
Release
2 parents d4e36e1 + 122eded commit 01e34a2

File tree

4 files changed

+63
-13
lines changed

4 files changed

+63
-13
lines changed

dist/index.js

+25-6
Original file line numberDiff line numberDiff line change
@@ -29091,11 +29091,25 @@ function wrappy (fn, cb) {
2909129091
Object.defineProperty(exports, "__esModule", ({ value: true }));
2909229092
class ReleaseNotesGenerator {
2909329093
generateReleaseNotes(issues) {
29094-
const releaseNotes = issues.map((issue) => {
29095-
const type = issue.pull_request ? "PR" : "Issue";
29096-
return `* ${type} #${issue.number} - ${issue.title}`;
29097-
});
29098-
return releaseNotes.join("\n");
29094+
let releaseNotes = "## Release Notes\n\n";
29095+
const enhancements = issues.filter((issue) => issue.labels.includes("enhancement"));
29096+
if (enhancements.length > 0) {
29097+
releaseNotes += "### Enhancements 🎁\n\n";
29098+
enhancements.forEach((issue) => {
29099+
releaseNotes += `- ${issue.title} (#${issue.number})\n`;
29100+
});
29101+
}
29102+
const bugs = issues.filter((issue) => issue.labels.includes("bug"));
29103+
if (bugs.length > 0) {
29104+
releaseNotes += "### Bug Fixes 🐞\n\n";
29105+
bugs.forEach((issue) => {
29106+
releaseNotes += `- ${issue.title} (#${issue.number})\n`;
29107+
});
29108+
}
29109+
if (enhancements.length === 0 && bugs.length === 0) {
29110+
releaseNotes += "No enhancements or bug fixes in this release.";
29111+
}
29112+
return releaseNotes;
2909929113
}
2910029114
}
2910129115
exports["default"] = ReleaseNotesGenerator;
@@ -29239,9 +29253,14 @@ class GitHubRepositoryUtils {
2923929253
if (issueOrPr.pull_request) {
2924029254
const issueNumbersOfPr = yield this.getReferencedIssuesFromPullRequest(issueOrPr.number);
2924129255
const issues = yield this.getIssuesAndPrsByNumbers(issueNumbersOfPr);
29242-
result.push(...issues);
29256+
result.push(...issues.filter((item) => item !== null &&
29257+
result.find((i) => i.id === item.id) === undefined));
2924329258
}
2924429259
else {
29260+
// Check if the issue is already in the result
29261+
if (result.find((item) => item.id === issueOrPr.id)) {
29262+
continue;
29263+
}
2924529264
result.push(issueOrPr);
2924629265
}
2924729266
}

dist/index.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ReleaseNotesGenerator.ts

+26-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,32 @@ import IssueOrPr from "./types/IssueOrPr";
22

33
export default class ReleaseNotesGenerator {
44
public generateReleaseNotes(issues: IssueOrPr[]) {
5-
const releaseNotes = issues.map((issue) => {
6-
const type = issue.pull_request ? "PR" : "Issue";
7-
return `* ${type} #${issue.number} - ${issue.title}`;
8-
});
5+
let releaseNotes = "## Release Notes\n\n";
96

10-
return releaseNotes.join("\n");
7+
const enhancements = issues.filter((issue) =>
8+
issue.labels.includes("enhancement")
9+
);
10+
11+
if (enhancements.length > 0) {
12+
releaseNotes += "### Enhancements 🎁\n\n";
13+
enhancements.forEach((issue) => {
14+
releaseNotes += `- ${issue.title} (#${issue.number})\n`;
15+
});
16+
}
17+
18+
const bugs = issues.filter((issue) => issue.labels.includes("bug"));
19+
20+
if (bugs.length > 0) {
21+
releaseNotes += "### Bug Fixes 🐞\n\n";
22+
bugs.forEach((issue) => {
23+
releaseNotes += `- ${issue.title} (#${issue.number})\n`;
24+
});
25+
}
26+
27+
if (enhancements.length === 0 && bugs.length === 0) {
28+
releaseNotes += "No enhancements or bug fixes in this release.";
29+
}
30+
31+
return releaseNotes;
1132
}
1233
}

src/utils/GitHubRepositoryUtils.ts

+11-1
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,18 @@ export default class GitHubRepositoryUtils {
8383

8484
const issues = await this.getIssuesAndPrsByNumbers(issueNumbersOfPr);
8585

86-
result.push(...issues);
86+
result.push(
87+
...issues.filter(
88+
(item) =>
89+
item !== null &&
90+
result.find((i) => i.id === item.id) === undefined
91+
)
92+
);
8793
} else {
94+
// Check if the issue is already in the result
95+
if (result.find((item) => item.id === issueOrPr.id)) {
96+
continue;
97+
}
8898
result.push(issueOrPr);
8999
}
90100
}

0 commit comments

Comments
 (0)