diff --git a/dist/index.js b/dist/index.js index bc0bfac..57130a6 100644 --- a/dist/index.js +++ b/dist/index.js @@ -183,8 +183,13 @@ function createOrUpdateBranch(git, commitMessage, base, branch, branchRemoteName // This will also be true if the working base type is a commit if (workingBase != base) { core.info(`Rebasing commits made to ${workingBaseType} '${workingBase}' on to base branch '${base}'`); + const fetchArgs = ['--force']; + if (branchRemoteName != 'fork') { + // If pushing to a fork we cannot shallow fetch otherwise the 'shallow update not allowed' error occurs + fetchArgs.push('--depth=1'); + } // Checkout the actual base - yield git.fetch([`${base}:${base}`], baseRemote, ['--force', '--depth=1']); + yield git.fetch([`${base}:${base}`], baseRemote, fetchArgs); yield git.checkout(base); // Cherrypick commits from the temporary branch starting from the working base const commits = yield git.revList([`${workingBase}..${tempBranch}`, '.'], ['--reverse']); @@ -197,7 +202,7 @@ function createOrUpdateBranch(git, commitMessage, base, branch, branchRemoteName // Reset the temp branch to the working index yield git.checkout(tempBranch, 'HEAD'); // Reset the base - yield git.fetch([`${base}:${base}`], baseRemote, ['--force', '--depth=1']); + yield git.fetch([`${base}:${base}`], baseRemote, fetchArgs); } // Try to fetch the pull request branch if (!(yield tryFetch(git, branchRemoteName, branch))) { diff --git a/src/create-or-update-branch.ts b/src/create-or-update-branch.ts index b048d5d..000dc51 100644 --- a/src/create-or-update-branch.ts +++ b/src/create-or-update-branch.ts @@ -199,8 +199,13 @@ export async function createOrUpdateBranch( core.info( `Rebasing commits made to ${workingBaseType} '${workingBase}' on to base branch '${base}'` ) + const fetchArgs = ['--force'] + if (branchRemoteName != 'fork') { + // If pushing to a fork we cannot shallow fetch otherwise the 'shallow update not allowed' error occurs + fetchArgs.push('--depth=1') + } // Checkout the actual base - await git.fetch([`${base}:${base}`], baseRemote, ['--force', '--depth=1']) + await git.fetch([`${base}:${base}`], baseRemote, fetchArgs) await git.checkout(base) // Cherrypick commits from the temporary branch starting from the working base const commits = await git.revList( @@ -219,7 +224,7 @@ export async function createOrUpdateBranch( // Reset the temp branch to the working index await git.checkout(tempBranch, 'HEAD') // Reset the base - await git.fetch([`${base}:${base}`], baseRemote, ['--force', '--depth=1']) + await git.fetch([`${base}:${base}`], baseRemote, fetchArgs) } // Try to fetch the pull request branch