From 0521684eaa4486d9e3602bf49d8ec4bdfc31e091 Mon Sep 17 00:00:00 2001 From: lowlighter <22963968+lowlighter@users.noreply.github.com> Date: Tue, 9 Mar 2021 12:15:04 +0100 Subject: [PATCH] Better handle of pull request mergeability --- source/app/action/index.mjs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/source/app/action/index.mjs b/source/app/action/index.mjs index 890681b1..5bc43aae 100644 --- a/source/app/action/index.mjs +++ b/source/app/action/index.mjs @@ -298,8 +298,19 @@ //Merge pull request if (committer.merge) { info("Merge method", committer.merge) - await committer.rest.pulls.merge({...github.context.repo, pull_number:number, merge_method:committer.merge}) - info(`Merge #${number} to ${committer.branch}`, "ok") + do { + //Check pull request mergeability (https://octokit.github.io/rest.js/v18#pulls-get) + const {data:{mergeable, mergeable_state:state}} = await committer.rest.pulls.get({...github.context.repo, pull_number:number}) + console.debug(`Pull request #${number} mergeable state is "${state}"`) + if (mergeable === null) + continue + if (!mergeable) + throw new Error(`Pull request #${number} is not mergeable (state is "${state}")`) + //Merge pull request + await committer.rest.pulls.merge({...github.context.repo, pull_number:number, merge_method:committer.merge}) + info(`Merge #${number} to ${committer.branch}`, "ok") + break + } while (true) } }