11const { execSync } = require ( 'child_process' ) ;
22const fs = require ( 'fs' ) ;
33
4- async function generateReleaseNotes ( owner , repo , tagName , token ) {
5- console . log ( `Generating release notes for tag: ${ tagName } ` ) ;
6-
7- try {
8- const response = await fetch ( `https://api.github.com/repos/${ owner } /${ repo } /releases/generate-notes` , {
9- method : 'POST' ,
10- headers : {
11- 'Authorization' : `token ${ token } ` ,
12- 'Accept' : 'application/vnd.github.v3+json' ,
13- 'User-Agent' : 'GitHub-Actions' ,
14- 'Content-Type' : 'application/json'
15- } ,
16- body : JSON . stringify ( {
17- tag_name : tagName
18- } )
19- } ) ;
20-
21- if ( response . status === 200 ) {
22- const releaseNotes = await response . json ( ) ;
23- return releaseNotes . body ;
24- } else {
25- console . warn ( `Failed to generate release notes: ${ response . status } ` ) ;
26- return `Release ${ tagName } ` ;
27- }
28- } catch ( error ) {
29- console . warn ( 'Error generating release notes:' , error . message ) ;
30- return `Release ${ tagName } ` ;
31- }
32- }
33-
344async function createRelease ( owner , repo , tagName , token ) {
355 console . log ( `Creating release for tag: ${ tagName } ` ) ;
366
37- // Generate release notes
38- const releaseBody = await generateReleaseNotes ( owner , repo , tagName , token ) ;
39-
407 try {
418 const response = await fetch ( `https://api.github.com/repos/${ owner } /${ repo } /releases` , {
429 method : 'POST' ,
@@ -48,11 +15,10 @@ async function createRelease(owner, repo, tagName, token) {
4815 } ,
4916 body : JSON . stringify ( {
5017 tag_name : tagName ,
51- name : `Release ${ tagName } ` ,
52- body : releaseBody ,
18+ name : tagName ,
5319 draft : false ,
5420 prerelease : false ,
55- generate_release_notes : false // We already generated them manually
21+ generate_release_notes : true
5622 } )
5723 } ) ;
5824
0 commit comments