diff --git a/lib/git.js b/lib/git.js index 578bb19..2800bcc 100644 --- a/lib/git.js +++ b/lib/git.js @@ -23,14 +23,8 @@ async function fetchAll() { } async function finishSprint(config) { - if (!await isClean()) { - const {confirm} = await inquirer.promptStash(); - if (confirm) { - await stash(); - } else { - throw new Error('Operation aborted.'); - } - } + await doStash(); + const {projectName, sprintNumber} = await inquirer.askProjectNameAndSprintNumber(config); const {confirm} = await inquirer.confirmFinishing( `Are you sure, you finished sprint ${sprintNumber} of ${projectName}` @@ -87,14 +81,9 @@ async function finishHotfix() { if (!branch) { throw new Error('You are not in any branch (detached HEAD?)'); } - if (!await isClean()) { - const {confirm} = await inquirer.promptStash(); - if (confirm) { - await stash(); - } else { - throw new Error('Operation aborted.'); - } - } + + await doStash(); + const {issueName, issueNumber} = toIssueNumberAndName(branch, HOTFIX_PREFIX); const {confirm} = await inquirer.confirmFinishing(`Are you sure, you finished ${issueName}`); if (!confirm) { @@ -124,14 +113,9 @@ async function finishFeature(config) { if (!branch) { throw new Error('You are not in any branch (detached HEAD?)'); } - if (!await isClean()) { - const {confirm} = await inquirer.promptStash(); - if (confirm) { - await stash(); - } else { - throw new Error('Operation aborted.'); - } - } + + await doStash(); + const {projectName, sprintNumber} = await inquirer.askProjectNameAndSprintNumber(config); const baseBranch = `${projectName}/sprint-${sprintNumber}`; const {confirm} = await inquirer.confirmFinishing(`Are you sure, you finished ${branch} of ${baseBranch}`);