11import * as core from '@actions/core'
22import { Octokit } from "@octokit/core"
3+ import { RequestError } from "@octokit/request-error"
34import { getLabels } from './getLabels'
45import { searchPRwithLabels } from './searchPRwithLabels'
56import { searchCodePR } from './searchCodePR'
@@ -11,7 +12,7 @@ interface Input {
1112 owner : string
1213}
1314
14- export const main = ( octokit : Octokit , input : Input , merge : boolean ) : Promise < core . ExitCode > => {
15+ export async function main ( octokit : Octokit , input : Input , merge : boolean ) : Promise < core . ExitCode > {
1516
1617 const prNumber = input . prNumber
1718 const repoName = input . repoName
@@ -20,46 +21,35 @@ export const main = (octokit: Octokit, input: Input, merge: boolean): Promise<co
2021 core . info ( `PR Number: ${ prNumber } ` )
2122 core . info ( `Repo Name: ${ repoName } ` )
2223
23- return getLabels ( octokit , prNumber , repoName , owner ) . then ( ( labels ) => {
24+ try {
25+ const labels = await getLabels ( octokit , prNumber , repoName , owner )
2426 core . info ( `Labels: ${ labels } ` )
25- if ( labels === undefined ) {
26- core . setFailed ( `Request label failed` )
27- return core . ExitCode . Failure
28- }
29- // Remove *-pro labels from the list
3027 const labelsToSearch = labels . filter ( ( label ) => ! label . endsWith ( "-pro" ) )
31- return searchPRwithLabels ( octokit , repoName , owner , labelsToSearch ) . then ( ( PRs ) => {
32- core . info ( `PRs: ${ PRs } ` )
33- if ( PRs === undefined ) {
34- core . setFailed ( `Request PRs failed` )
35- return core . ExitCode . Failure
36- }
37- if ( PRs . length > 0 ) {
38- core . info ( 'PRs found, nothing to merge' )
39- return core . ExitCode . Success
40- } else {
41- core . info ( 'No PRs found, merge original code PR' )
42- return searchCodePR ( octokit , prNumber , repoName , owner ) . then ( ( codePR ) => {
43- core . info ( `Repo: ${ codePR . base . repo . name } PR: ${ codePR ?. number } ` )
44- if ( codePR === undefined ) {
45- core . setFailed ( `Request code PR failed` )
28+ const PRs = await searchPRwithLabels ( octokit , repoName , owner , labelsToSearch )
29+ core . info ( `PRs: ${ PRs } ` )
30+ if ( PRs . length > 0 ) {
31+ core . info ( 'PRs found, nothing to merge' )
32+ return core . ExitCode . Success
33+ } else {
34+ core . info ( 'No PRs found, merge original code PR' )
35+ const codePR = await searchCodePR ( octokit , prNumber , repoName , owner )
36+ core . info ( `Repo: ${ codePR . base . repo . name } PR: ${ codePR ?. number } ` )
37+ if ( merge ) {
38+ return mergePR ( octokit , codePR . number , codePR . base . repo . name , owner ) . then ( ( mergeResult ) => {
39+ core . info ( `Merge Result: ${ mergeResult } ` )
40+ if ( mergeResult === undefined ) {
41+ core . setFailed ( `Merge PR failed` )
4642 return core . ExitCode . Failure
4743 }
48- if ( merge ) {
49- return mergePR ( octokit , codePR . number , codePR . base . repo . name , owner ) . then ( ( mergeResult ) => {
50- core . info ( `Merge Result: ${ mergeResult } ` )
51- if ( mergeResult === undefined ) {
52- core . setFailed ( `Merge PR failed` )
53- return core . ExitCode . Failure
54- }
55- return core . ExitCode . Success
56- } )
57- }
5844 return core . ExitCode . Success
5945 } )
6046 }
61- } )
62- } )
47+ return core . ExitCode . Success
48+ }
49+ } catch ( error ) {
50+ core . setFailed ( error . message )
51+ return Promise . resolve ( core . ExitCode . Failure )
52+ }
6353}
6454
6555try {
0 commit comments