From 89f587cbf25790f5aa04bb5fc6af0e3f7bada68d Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Thu, 6 May 2021 08:37:37 +0200 Subject: [PATCH] fix(github): use forkToken if present for automerge (#9879) (#9882) --- lib/platform/github/index.ts | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/lib/platform/github/index.ts b/lib/platform/github/index.ts index e99496f987..3d1e932740 100644 --- a/lib/platform/github/index.ts +++ b/lib/platform/github/index.ts @@ -1569,9 +1569,13 @@ export async function mergePr( const url = `repos/${ config.parentRepo || config.repository }/pulls/${prNo}/merge`; - const options = { + const options: any = { body: {} as { merge_method?: string }, }; + // istanbul ignore if + if (config.forkToken) { + options.token = config.forkToken; + } let automerged = false; if (config.mergeMethod) { // This path is taken if we have auto-detected the allowed merge types from the repo @@ -1588,7 +1592,7 @@ export async function mergePr( 'GitHub blocking PR merge -- will keep trying' ); } else { - logger.warn({ err }, `Failed to ${options.body.merge_method} merge PR`); + logger.warn({ err }, `Failed to ${config.mergeMethod} merge PR`); return false; } } @@ -1600,29 +1604,20 @@ export async function mergePr( logger.debug({ options, url }, `mergePr`); await githubApi.putJson(url, options); } catch (err1) { - logger.debug( - { err: err1 }, - `Failed to ${options.body.merge_method} merge PR` - ); + logger.debug({ err: err1 }, `Failed to rebase merge PR`); try { options.body.merge_method = 'squash'; logger.debug({ options, url }, `mergePr`); await githubApi.putJson(url, options); } catch (err2) { - logger.debug( - { err: err2 }, - `Failed to ${options.body.merge_method} merge PR` - ); + logger.debug({ err: err2 }, `Failed to merge squash PR`); try { options.body.merge_method = 'merge'; logger.debug({ options, url }, `mergePr`); await githubApi.putJson(url, options); } catch (err3) { - logger.debug( - { err: err3 }, - `Failed to ${options.body.merge_method} merge PR` - ); - logger.debug({ pr: prNo }, 'All merge attempts failed'); + logger.debug({ err: err3 }, `Failed to merge commit PR`); + logger.info({ pr: prNo }, 'All merge attempts failed'); return false; } } -- GitLab