@@ -16,7 +16,7 @@ const kChanged = Symbol('changed');
1616export default class SecurityBlog extends SecurityRelease {
1717 req ;
1818
19- async createPreRelease ( ) {
19+ async createPreRelease ( nodejsOrgFolder ) {
2020 const { cli } = this ;
2121
2222 // checkout on security release branch
@@ -45,11 +45,30 @@ export default class SecurityBlog extends SecurityRelease {
4545 } ;
4646 const month = releaseDate . toLocaleString ( 'en-US' , { month : 'long' } ) . toLowerCase ( ) ;
4747 const year = releaseDate . getFullYear ( ) ;
48- const fileName = `${ month } -${ year } -security-releases.md` ;
48+ const fileName = `${ month } -${ year } -security-releases` ;
49+ const fileNameExt = fileName + '.md' ;
4950 const preRelease = this . buildPreRelease ( template , data ) ;
50- const file = path . join ( process . cwd ( ) , fileName ) ;
51+
52+ const pathToBlogPosts = 'apps/site/pages/en/blog/release' ;
53+ const pathToBannerJson = 'apps/site/site.json' ;
54+
55+ const file = path . resolve ( process . cwd ( ) , nodejsOrgFolder , pathToBlogPosts , fileNameExt ) ;
56+ const site = path . resolve ( process . cwd ( ) , nodejsOrgFolder , pathToBannerJson ) ;
57+ const siteJson = JSON . parse ( fs . readFileSync ( site ) ) ;
58+
59+ const endDate = new Date ( data . annoucementDate ) ;
60+ endDate . setDate ( endDate . getDate ( ) + 7 ) ;
61+ const capitalizedMonth = month [ 0 ] . toUpperCase ( ) + month . slice ( 1 ) ;
62+ siteJson . websiteBanners . index = {
63+ startDate : data . annoucementDate ,
64+ endDate : endDate . toISOString ( ) ,
65+ text : `${ capitalizedMonth } Security Release is available` ,
66+ link : `https://nodejs.org/en/blog/vulnerability/${ fileName } ` ,
67+ type : 'warning'
68+ } ;
5169 fs . writeFileSync ( file , preRelease ) ;
52- cli . ok ( `Pre-release announcement file created at ${ file } ` ) ;
70+ fs . writeFileSync ( site , JSON . stringify ( siteJson , null , 2 ) ) ;
71+ cli . ok ( `Announcement file created and banner has been updated. Folder: ${ nodejsOrgFolder } ` ) ;
5372 }
5473
5574 async createPostRelease ( ) {
0 commit comments