diff --git a/.github/workflows/merge-when-green.yml b/.github/workflows/merge-when-green.yml index 9ebc392..190381d 100644 --- a/.github/workflows/merge-when-green.yml +++ b/.github/workflows/merge-when-green.yml @@ -34,34 +34,45 @@ jobs: uses: actions/github-script@v7 with: script: | - const prNumber = parseInt('${{ steps.find_pr.outputs.pr_number }}', 10); - const { data: pr } = await github.pulls.get({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: prNumber, - }); - if (pr.draft) { - core.info(`PR #${prNumber} is draft. Skipping.`); - return; - } - if (pr.state !== 'open') { - core.info(`PR #${prNumber} is not open. Skipping.`); - return; - } - if (!['master','main'].includes(pr.base.ref)) { - core.info(`PR #${prNumber} base is ${pr.base.ref}, not master/main. Skipping.`); - return; - } - const { data: prDetails } = await github.pulls.get({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: prNumber, - }); - if (prDetails.mergeable_state !== 'clean' && prDetails.mergeable_state !== 'has_hooks') { - core.info(`PR #${prNumber} mergeable_state=${prDetails.mergeable_state}. Not clean yet.`); + // Check if github object is available + if (!github) { + core.setFailed('GitHub API is not available in this context'); return; } + + const prNumber = parseInt('${{ steps.find_pr.outputs.pr_number }}', 10); + try { + const { data: pr } = await github.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber, + }); + + if (pr.draft) { + core.info(`PR #${prNumber} is draft. Skipping.`); + return; + } + if (pr.state !== 'open') { + core.info(`PR #${prNumber} is not open. Skipping.`); + return; + } + if (!['master','main'].includes(pr.base.ref)) { + core.info(`PR #${prNumber} base is ${pr.base.ref}, not master/main. Skipping.`); + return; + } + + const { data: prDetails } = await github.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber, + }); + + if (prDetails.mergeable_state !== 'clean' && prDetails.mergeable_state !== 'has_hooks') { + core.info(`PR #${prNumber} mergeable_state=${prDetails.mergeable_state}. Not clean yet.`); + return; + } + await github.pulls.merge({ owner: context.repo.owner, repo: context.repo.repo, diff --git a/package.json b/package.json index 11a8355..ad9638d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@icpay/sdk", - "version": "1.3.34", + "version": "1.3.35", "description": "Official icpay SDK for Internet Computer payments", "main": "dist/index.js", "types": "dist/index.d.ts",