@@ -16,7 +16,7 @@ const kChanged = Symbol('changed');
16
16
export default class SecurityBlog extends SecurityRelease {
17
17
req ;
18
18
19
- async createPreRelease ( ) {
19
+ async createPreRelease ( nodejsOrgFolder ) {
20
20
const { cli } = this ;
21
21
22
22
// checkout on security release branch
@@ -45,11 +45,30 @@ export default class SecurityBlog extends SecurityRelease {
45
45
} ;
46
46
const month = releaseDate . toLocaleString ( 'en-US' , { month : 'long' } ) . toLowerCase ( ) ;
47
47
const year = releaseDate . getFullYear ( ) ;
48
- const fileName = `${ month } -${ year } -security-releases.md` ;
48
+ const fileName = `${ month } -${ year } -security-releases` ;
49
+ const fileNameExt = fileName + '.md' ;
49
50
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
+ } ;
51
69
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 } ` ) ;
53
72
}
54
73
55
74
async createPostRelease ( ) {
0 commit comments