Skip to content

Commit a91c6e6

Browse files
committed
chore: update release notes generator path in .releaserc.json
1 parent 517b9d4 commit a91c6e6

2 files changed

Lines changed: 42 additions & 1 deletion

File tree

.releaserc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
]
2323
}
2424
],
25-
"@semantic-release/release-notes-generator",
25+
"./scripts/semantic-release/commit-list-notes.cjs",
2626
[
2727
"@semantic-release/changelog",
2828
{"changelogFile": "CHANGELOG.md"}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
const RELEASE_COMMIT_RE = /^chore\(release\):/i;
2+
3+
function listCommits(fromTag) {
4+
const args = ['log', '--pretty=format:%h %s', '--no-merges', '--reverse'];
5+
if (fromTag) {
6+
args.push(`${fromTag}..HEAD`);
7+
}
8+
9+
let output;
10+
try {
11+
output = require('child_process')
12+
.execFileSync('git', args, { encoding: 'utf-8' })
13+
.trim();
14+
} catch {
15+
return [];
16+
}
17+
18+
if (!output) {
19+
return [];
20+
}
21+
22+
return output
23+
.split('\n')
24+
.filter((line) => {
25+
const message = line.replace(/^[0-9a-f]+\s+/, '');
26+
return message.length > 0 && !RELEASE_COMMIT_RE.test(message);
27+
});
28+
}
29+
30+
async function generateNotes(_pluginConfig, context) {
31+
const fromTag = context.lastRelease?.gitTag;
32+
const commits = listCommits(fromTag);
33+
34+
if (commits.length === 0) {
35+
return 'No user-facing commits in this release.';
36+
}
37+
38+
return ['## Commits', '', ...commits.map((commit) => `- ${commit}`)].join('\n');
39+
}
40+
41+
module.exports = { generateNotes, listCommits, RELEASE_COMMIT_RE };

0 commit comments

Comments
 (0)