@@ -3,9 +3,11 @@ import { context, GitHub } from "@actions/github";
33
44import * as Octokit from "@octokit/rest" ;
55
6+ type IResponse = Octokit . Response < Octokit . ReposGetLatestReleaseResponse | Octokit . ReposCreateReleaseResponse > ;
7+
68async function run ( ) : Promise < void > {
7- const tag : string = core . getInput ( "tag" , { required : true } ) ;
8- const name : string = core . getInput ( "name" , { required : true } ) ;
9+ const tag : string = core . getInput ( "tag" , { required : true } ) ;
10+ const name : string = core . getInput ( "name" , { required : true } ) ;
911 const body : string = core . getInput ( "body" ) ;
1012 const draft : boolean = core . getInput ( "draft" ) === "true" ;
1113 const prerelease : boolean = core . getInput ( "prerelease" ) === "true" ;
@@ -20,22 +22,17 @@ async function run(): Promise<void> {
2022
2123 const github : GitHub = new GitHub ( process . env . GITHUB_TOKEN ) ;
2224
23- let releaseID : number = - 1 ;
24- let releaseURL : string = "" ;
25- let releaseUploadURL : string = "" ;
25+ let response : undefined | IResponse ;
2626
2727 try {
28- const response : Octokit . Response < Octokit . ReposGetLatestReleaseResponse > = await github . repos . getReleaseByTag ( {
28+ response = await github . repos . getReleaseByTag ( {
2929 owner,
3030 repo,
3131 tag,
3232 } ) ;
33- releaseID = response . data . id ;
34- releaseURL = response . data . html_url ;
35- releaseUploadURL = response . data . upload_url ;
3633 } catch ( error ) {
3734 try {
38- const response : Octokit . Response < Octokit . ReposCreateReleaseResponse > = await github . repos . createRelease ( {
35+ response = await github . repos . createRelease ( {
3936 body,
4037 draft,
4138 name,
@@ -45,34 +42,18 @@ async function run(): Promise<void> {
4542 tag_name : tag ,
4643 target_commitish,
4744 } ) ;
48-
49- releaseID = response . data . id ;
50- releaseURL = response . data . html_url ;
51- releaseUploadURL = response . data . assets_url ;
5245 } catch ( createError ) {
53- core . setFailed ( "Error" ) ;
54- return ;
46+ core . setFailed ( "Error: " + JSON . stringify ( createError ) ) ;
5547 }
5648 }
5749
58- if ( releaseID < 0 ) {
59- core . setFailed ( "Invalid release id " + releaseID ) ;
60- return ;
61- }
62-
63- if ( ! releaseURL || ! releaseURL . length ) {
64- core . setFailed ( "Invalid release URL" ) ;
65- return ;
50+ if ( response ) {
51+ core . setOutput ( "id" , response . data . id . toString ( ) ) ;
52+ core . setOutput ( "url" , response . data . html_url ) ;
53+ core . setOutput ( "upload_url" , response . data . upload_url ) ;
54+ } else {
55+ core . setFailed ( "Invalid release" ) ;
6656 }
67-
68- if ( ! releaseUploadURL || ! releaseUploadURL . length ) {
69- core . setFailed ( "Invalid release URL" ) ;
70- return ;
71- }
72-
73- core . setOutput ( "id" , releaseID . toString ( ) ) ;
74- core . setOutput ( "url" , releaseURL ) ;
75- core . setOutput ( "upload_url" , releaseUploadURL ) ;
7657}
7758
7859run ( ) ;
0 commit comments