@@ -373,6 +373,30 @@ function generateRelease(prereleaseId) {
373
373
fs . writeFileSync ( ".eslint-release-info.json" , JSON . stringify ( releaseInfo , null , 4 ) ) ;
374
374
}
375
375
376
+ /**
377
+ * Creates release body text from a changelog information.
378
+ * @param {Object } [changelog] The changelog information.
379
+ * @returns {string } THe release body text
380
+ */
381
+ function generateReleaseBody ( changelog ) {
382
+ const logFlags = [
383
+ { flag : "breaking" , title : "Breaking Changes" } ,
384
+ { flag : "new" , title : "Features" } ,
385
+ { flag : "update" , title : "Enhancements" } ,
386
+ { flag : "fix" , title : "Bug Fixes" } ,
387
+ { flag : "docs" , title : "Documentation" } ,
388
+ { flag : "upgrade" , title : "Dependency Upgrades" } ,
389
+ { flag : "build" , title : "Build Related" } ,
390
+ { flag : "chore" , title : "Chores" }
391
+ ] ;
392
+
393
+ return logFlags
394
+ . map ( ( { flag, title } ) => ( { title, logs : changelog [ flag ] } ) )
395
+ . filter ( ( { logs } ) => logs && logs . length > 0 )
396
+ . map ( ( { title, logs } ) => `## ${ title } \n${ logs . join ( "\n" ) } ` )
397
+ . join ( "\n\n" ) ;
398
+ }
399
+
376
400
/**
377
401
* Publishes the release information to GitHub.
378
402
* @param {Object } releaseInfo The release information object.
@@ -388,7 +412,7 @@ function publishReleaseToGitHub(releaseInfo) {
388
412
389
413
return repo . createRelease ( {
390
414
tag_name : tag , // eslint-disable-line camelcase
391
- body : releaseInfo . rawChangelog ,
415
+ body : generateReleaseBody ( releaseInfo . changelog ) ,
392
416
prerelease : ! ! semver . prerelease ( releaseInfo . version )
393
417
} ) . then ( ( ) => {
394
418
console . log ( "Posted release notes to GitHub" ) ;
@@ -462,5 +486,6 @@ module.exports = {
462
486
calculateReleaseInfo,
463
487
getChangelogCommitRange,
464
488
calculateReleaseFromGitLogs,
465
- writeChangelog
489
+ writeChangelog,
490
+ generateReleaseBody
466
491
} ;
0 commit comments