diff --git a/lib/promote_release.js b/lib/promote_release.js index 14585586..49967f58 100644 --- a/lib/promote_release.js +++ b/lib/promote_release.js @@ -5,7 +5,7 @@ import { pipeline } from 'node:stream/promises'; import semver from 'semver'; import * as gst from 'git-secure-tag'; -import { forceRunAsync } from './run.js'; +import { forceRunAsync, runSync } from './run.js'; import PRData from './pr_data.js'; import PRChecker from './pr_checker.js'; import Session from './session.js'; @@ -59,7 +59,8 @@ export default class ReleasePromotion extends Session { if (!localCloneIsClean) { if (await cli.prompt('Should we checkout the release proposal?')) { cli.startSpinner('Fetching the proposal upstream...'); - await forceRunAsync('git', ['fetch', proposalUpstreamRemote, releaseCommitSha], + // We need a sync spawn here to avoid the spinner getting in the way of SSH key passphrase + runSync('git', ['fetch', proposalUpstreamRemote, releaseCommitSha], { ignoreFailure: false }); await forceRunAsync('git', ['checkout', releaseCommitSha], { ignoreFailure: false }); cli.stopSpinner('Local HEAD is now in sync with the proposal');