feat: add-paths input (#1010)

* add add-pattern-array argument

* ignore return code

* doc to add-pattern-array

* update README.md

* cleanup after success commit

* fix integration tests

* add test

* update naming and docs

* update readme

* fix missing await

* update docs

Co-authored-by: avdim <avdim@mail.ru>
Co-authored-by: Авдеев Дима <avdeev@tutu.tech>
This commit is contained in:
Peter Evans 2021-12-14 11:23:29 +09:00 committed by GitHub
parent 4b53b6fd1a
commit dcd5fd746d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 229 additions and 65 deletions

1
.gitignore vendored
View file

@ -2,3 +2,4 @@ lib/
node_modules/
.DS_Store
.idea

View file

@ -46,6 +46,7 @@ All inputs are **optional**. If not set, sensible defaults will be used.
| --- | --- | --- |
| `token` | `GITHUB_TOKEN` (`contents: write`, `pull-requests: write`) or a `repo` scoped [Personal Access Token (PAT)](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token). | `GITHUB_TOKEN` |
| `path` | Relative path under `GITHUB_WORKSPACE` to the repository. | `GITHUB_WORKSPACE` |
| `add-paths` | A comma or newline-separated list of file paths to commit. Paths should follow git's [pathspec](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefpathspecapathspec) syntax. Defaults to adding all new and modified files. See [Add specific paths](#add-specific-paths). | `-A` |
| `commit-message` | The message to use when committing changes. | `[create-pull-request] automated change` |
| `committer` | The committer name and email address in the format `Display Name <email@address.com>`. Defaults to the GitHub Actions bot user. | `GitHub <noreply@github.com>` |
| `author` | The author name and email address in the format `Display Name <email@address.com>`. Defaults to the user who triggered the workflow run. | `${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>` |
@ -122,7 +123,42 @@ To use this strategy, set input `branch-suffix` with one of the following option
- `short-commit-hash` - Commits will be made to a branch suffixed with the short SHA1 commit hash. e.g. `create-pull-request/patch-fcdfb59`, `create-pull-request/patch-394710b`
### Controlling commits
### Controlling committed files
The action defaults to adding all new and modified files.
If there are files that should not be included in the pull request, you can use the following methods to control the committed content.
#### Remove files
The most straightforward way to handle unwanted files is simply to remove them in a step before the action runs.
```yml
- run: |
rm -rf temp-dir
rm temp-file.txt
```
#### Ignore files
If there are files or directories you want to ignore you can simply add them to a `.gitignore` file at the root of your repository. The action will respect this file.
#### Add specific paths
You can control which files are committed with the `add-paths` input.
Paths should follow git's [pathspec](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefpathspecapathspec) syntax.
Each path must resolve to a least one new or modified file to add.
All file changes that do not match one of the paths will be discarded.
```yml
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
add-paths: |
*.java
docs/*.md
```
#### Create your own commits
As well as relying on the action to handle uncommitted changes, you can additionally make your own commits before the action runs.
Note that the repository must be checked out on a branch with a remote, it won't work for [events which checkout a commit](docs/concepts-guidelines.md#events-which-checkout-a-commit).
@ -145,10 +181,6 @@ Note that the repository must be checked out on a branch with a remote, it won't
uses: peter-evans/create-pull-request@v3
```
### Ignoring files
If there are files or directories you want to ignore you can simply add them to a `.gitignore` file at the root of your repository. The action will respect this file.
### Create a project card
To create a project card for the pull request, pass the `pull-request-number` step output to [create-or-update-project-card](https://github.com/peter-evans/create-or-update-project-card) action.

View file

@ -25,6 +25,9 @@ const BASE = DEFAULT_BRANCH
const FORK_REMOTE_URL = 'git://127.0.0.1/test-fork.git'
const FORK_REMOTE_NAME = 'fork'
const ADD_PATHS = ['-A']
const ADD_PATHS_WILDCARD = ['*.txt']
async function createFile(filename: string, content?: string): Promise<string> {
const _content = content ? content : uuidv4()
const filepath = path.join(REPO_PATH, filename)
@ -220,7 +223,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('none')
expect(await gitLogMatches([INIT_COMMIT_MESSAGE])).toBeTruthy()
@ -236,7 +240,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(trackedContent)
@ -263,7 +268,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -283,7 +289,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(UNTRACKED_FILE)).toEqual(untrackedContent)
@ -310,7 +317,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -332,7 +340,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -360,7 +369,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('not-updated')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -380,7 +390,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -416,7 +427,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -446,7 +458,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -473,7 +486,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeFalsy()
@ -493,7 +507,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -532,7 +547,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeFalsy()
@ -558,7 +574,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -600,7 +617,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeFalsy()
@ -621,7 +639,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(commits.changes.tracked)
@ -651,7 +670,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -676,7 +696,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -710,7 +731,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -737,7 +759,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -779,7 +802,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -805,7 +829,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
FORK_REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -833,7 +858,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
FORK_REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -854,7 +880,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
true
true,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -889,7 +916,8 @@ describe('create-or-update-branch tests', () => {
'',
BRANCH,
REMOTE_NAME,
true
true,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -907,6 +935,59 @@ describe('create-or-update-branch tests', () => {
)
})
it('tests create and update with wildcard add-paths', async () => {
// The pull request branch will not be updated
// Create tracked and untracked file changes
const changes = await createChanges()
const commitMessage = uuidv4()
const result = await createOrUpdateBranch(
git,
commitMessage,
'',
BRANCH,
REMOTE_NAME,
false,
ADD_PATHS_WILDCARD
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked)
expect(
await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE])
).toBeTruthy()
// Push pull request branch to remote
await git.push([
'--force-with-lease',
REMOTE_NAME,
`HEAD:refs/heads/${BRANCH}`
])
await afterTest(false)
await beforeTest()
// Create tracked and untracked file changes
const _changes = await createChanges()
const _commitMessage = uuidv4()
const _result = await createOrUpdateBranch(
git,
_commitMessage,
'',
BRANCH,
REMOTE_NAME,
false,
ADD_PATHS_WILDCARD
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
expect(await getFileContent(TRACKED_FILE)).toEqual(_changes.tracked)
expect(await getFileContent(UNTRACKED_FILE)).toEqual(_changes.untracked)
expect(
await gitLogMatches([_commitMessage, INIT_COMMIT_MESSAGE])
).toBeTruthy()
})
// Working Base is Not Base (WBNB)
it('tests no changes resulting in no new branch being created (WBNB)', async () => {
@ -920,7 +1001,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('none')
expect(await gitLogMatches([INIT_COMMIT_MESSAGE])).toBeTruthy()
@ -939,7 +1021,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(trackedContent)
@ -969,7 +1052,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -992,7 +1076,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(UNTRACKED_FILE)).toEqual(untrackedContent)
@ -1022,7 +1107,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -1047,7 +1133,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1078,7 +1165,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('not-updated')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1101,7 +1189,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1140,7 +1229,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -1173,7 +1263,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1203,7 +1294,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeFalsy()
@ -1228,7 +1320,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1270,7 +1363,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeFalsy()
@ -1299,7 +1393,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1344,7 +1439,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeFalsy()
@ -1368,7 +1464,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(commits.changes.tracked)
@ -1401,7 +1498,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -1429,7 +1527,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1466,7 +1565,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -1496,7 +1596,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1541,7 +1642,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -1570,7 +1672,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
FORK_REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1601,7 +1704,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
FORK_REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -1629,7 +1733,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1661,7 +1766,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -1686,7 +1792,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(result.action).toEqual('created')
expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked)
@ -1726,7 +1833,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
expect(_result.action).toEqual('updated')
expect(_result.hasDiffWithBase).toBeTruthy()
@ -1757,7 +1865,8 @@ describe('create-or-update-branch tests', () => {
BASE,
BRANCH,
REMOTE_NAME,
false
false,
ADD_PATHS
)
// The action cannot successfully create the branch
expect(result.action).toEqual('none')

View file

@ -8,6 +8,13 @@ inputs:
description: >
Relative path under $GITHUB_WORKSPACE to the repository.
Defaults to $GITHUB_WORKSPACE.
add-paths:
description: >
A comma or newline-separated list of file paths to commit.
Paths should follow git's pathspec syntax.
Defaults to adding all new and modified files.
default: |
-A
commit-message:
description: 'The message to use when committing changes.'
default: '[create-pull-request] automated change'

12
dist/index.js vendored
View file

@ -98,7 +98,7 @@ function splitLines(multilineString) {
.map(s => s.trim())
.filter(x => x !== '');
}
function createOrUpdateBranch(git, commitMessage, base, branch, branchRemoteName, signoff) {
function createOrUpdateBranch(git, commitMessage, base, branch, branchRemoteName, signoff, addPaths) {
return __awaiter(this, void 0, void 0, function* () {
// Get the working base.
// When a ref, it may or may not be the actual base.
@ -124,12 +124,17 @@ function createOrUpdateBranch(git, commitMessage, base, branch, branchRemoteName
// Commit any uncommitted changes
if (yield git.isDirty(true)) {
core.info('Uncommitted changes found. Adding a commit.');
yield git.exec(['add', '-A']);
for (const path of addPaths) {
yield git.exec(['add', path], true);
}
const params = ['-m', commitMessage];
if (signoff) {
params.push('--signoff');
}
yield git.commit(params);
// Remove uncommitted tracked and untracked changes
yield git.exec(['reset', '--hard']);
yield git.exec(['clean', '-f']);
}
// Perform fetch and reset the working base
// Commits made during the workflow will be removed
@ -377,7 +382,7 @@ function createPullRequest(inputs) {
core.endGroup();
// Create or update the pull request branch
core.startGroup('Create or update the pull request branch');
const result = yield (0, create_or_update_branch_1.createOrUpdateBranch)(git, inputs.commitMessage, inputs.base, inputs.branch, branchRemoteName, inputs.signoff);
const result = yield (0, create_or_update_branch_1.createOrUpdateBranch)(git, inputs.commitMessage, inputs.base, inputs.branch, branchRemoteName, inputs.signoff, inputs.addPaths);
core.endGroup();
if (['created', 'updated'].includes(result.action)) {
// The branch was created or updated
@ -1074,6 +1079,7 @@ function run() {
const inputs = {
token: core.getInput('token'),
path: core.getInput('path'),
addPaths: utils.getInputAsArray('add-paths'),
commitMessage: core.getInput('commit-message'),
committer: core.getInput('committer'),
author: core.getInput('author'),

View file

@ -68,6 +68,6 @@
### New features
- Unpushed commits made during the workflow before the action runs will now be considered as changes to be raised in the pull request. See [Controlling commits](https://github.com/peter-evans/create-pull-request#controlling-commits) for details.
- Unpushed commits made during the workflow before the action runs will now be considered as changes to be raised in the pull request. See [Create your own commits](https://github.com/peter-evans/create-pull-request#create-your-own-commits) for details.
- New commits made to the pull request base will now be taken into account when pull requests are updated.
- If an updated pull request no longer differs from its base it will automatically be closed and the pull request branch deleted.

View file

@ -91,7 +91,8 @@ export async function createOrUpdateBranch(
base: string,
branch: string,
branchRemoteName: string,
signoff: boolean
signoff: boolean,
addPaths: string[]
): Promise<CreateOrUpdateBranchResult> {
// Get the working base.
// When a ref, it may or may not be the actual base.
@ -120,12 +121,17 @@ export async function createOrUpdateBranch(
// Commit any uncommitted changes
if (await git.isDirty(true)) {
core.info('Uncommitted changes found. Adding a commit.')
await git.exec(['add', '-A'])
for (const path of addPaths) {
await git.exec(['add', path], true)
}
const params = ['-m', commitMessage]
if (signoff) {
params.push('--signoff')
}
await git.commit(params)
// Remove uncommitted tracked and untracked changes
await git.exec(['reset', '--hard'])
await git.exec(['clean', '-f'])
}
// Perform fetch and reset the working base

View file

@ -12,6 +12,7 @@ import * as utils from './utils'
export interface Inputs {
token: string
path: string
addPaths: string[]
commitMessage: string
committer: string
author: string
@ -173,7 +174,8 @@ export async function createPullRequest(inputs: Inputs): Promise<void> {
inputs.base,
inputs.branch,
branchRemoteName,
inputs.signoff
inputs.signoff,
inputs.addPaths
)
core.endGroup()

View file

@ -8,6 +8,7 @@ async function run(): Promise<void> {
const inputs: Inputs = {
token: core.getInput('token'),
path: core.getInput('path'),
addPaths: utils.getInputAsArray('add-paths'),
commitMessage: core.getInput('commit-message'),
committer: core.getInput('committer'),
author: core.getInput('author'),