fix: re-stage files after pulling (#411)

* fix: re-stage files after pulling

This should fix an issue that prevented changes from being committed
when `git pull --rebase --autostash` used.

Issue #406

* chore: mark pre-commit hook as executable

* fix: detect conflicts after pull
This commit is contained in:
Federico Grandi
2022-06-26 20:58:34 +02:00
committed by GitHub
parent 9fc8e267d9
commit 0d52df43e8
3 changed files with 20 additions and 4 deletions

View File

@@ -16,16 +16,17 @@ core.info(`Running in ${baseDir}`)
core.startGroup('Internal logs')
core.info('> Staging files...')
const peh = getInput('pathspec_error_handling')
const ignoreErrors =
getInput('pathspec_error_handling') == 'ignore' ? 'pathspec' : 'none'
if (getInput('add')) {
core.info('> Adding files...')
await add(peh == 'ignore' ? 'pathspec' : 'none')
await add(ignoreErrors)
} else core.info('> No files to add.')
if (getInput('remove')) {
core.info('> Removing files...')
await remove(peh == 'ignore' ? 'pathspec' : 'none')
await remove(ignoreErrors)
} else core.info('> No files to remove.')
core.info('> Checking for uncommitted changes in the git working tree...')
@@ -76,6 +77,21 @@ core.info(`Running in ${baseDir}`)
await git
.fetch(undefined, log)
.pull(undefined, undefined, matchGitArgs(pullOption), log)
core.info('> Checking for conflicts...')
const status = await git.status(undefined, log)
if (!status.conflicted.length) {
core.info('> No conflicts found.')
core.info('> Re-staging files...')
if (getInput('add')) await add(ignoreErrors)
if (getInput('remove')) await remove(ignoreErrors)
} else
throw new Error(
`There are ${
status.conflicted.length
} conflicting files: ${status.conflicted.join(',')}`
)
} else core.info('> Not pulling from repo.')
core.info('> Creating commit...')