2019-07-16 19:58:27 +09:00
# Create Pull Request
[](https://github.com/marketplace/actions/create-pull-request)
2019-07-16 19:53:24 +09:00
A GitHub action to create a pull request for changes to your repository in the actions workspace.
2019-07-16 19:58:27 +09:00
2019-09-25 23:58:47 +09:00
Changes to a repository in the Actions workspace persist between steps in a workflow.
This action is designed to be used in conjunction with other steps that modify or add files to your repository.
2019-07-16 19:58:27 +09:00
The changes will be automatically committed to a new branch and a pull request created.
Create Pull Request action will:
2019-09-25 23:58:47 +09:00
1. Check for repository changes in the Actions workspace. This includes untracked (new) files as well as modified files.
2019-07-16 19:58:27 +09:00
2. Commit all changes to a new branch. The commit will be made using the name and email of the `HEAD` commit author.
3. Create a pull request to merge the new branch into the currently active branch executing the workflow.
2019-08-13 18:26:08 +09:00
Note: Modifying a repository during workflows is not good practice in general.
However, this action opens up some interesting possibilities when used carefully.
2019-09-24 20:35:00 +09:00
This action is experimental and may not work well for some use cases.
2019-08-13 18:14:43 +09:00
2019-07-16 19:58:27 +09:00
## Usage
2019-09-25 09:42:45 +09:00
Linux
2019-08-13 18:14:43 +09:00
```yml
- name: Create Pull Request
2019-09-26 18:07:43 +09:00
uses: peter-evans/create-pull-request@v1 .3.1
2019-08-13 18:14:43 +09:00
env:
2019-08-13 18:26:08 +09:00
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2019-07-16 19:58:27 +09:00
```
2019-09-25 09:42:45 +09:00
Multi platform - Linux, MacOS, Windows (beta)
```yml
- name: Create Pull Request
2019-09-26 18:19:51 +09:00
uses: peter-evans/create-pull-request@v1 .3.1-multi
2019-09-25 09:42:45 +09:00
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
2019-07-16 19:58:27 +09:00
#### Environment variables
These variables are all optional. If not set, a default value will be used.
- `COMMIT_MESSAGE` - The message to use when committing changes.
- `PULL_REQUEST_TITLE` - The title of the pull request.
- `PULL_REQUEST_BODY` - The body of the pull request.
2019-09-26 18:07:43 +09:00
- `PULL_REQUEST_LABELS` - A comma separated list of labels.
- `PULL_REQUEST_ASSIGNEES` - A comma separated list of assignees (GitHub usernames).
- `PULL_REQUEST_REVIEWERS` - A comma separated list of reviewers (GitHub usernames) to request a review from.
- `PULL_REQUEST_TEAM_REVIEWERS` - A comma separated list of GitHub teams to request a review from.
- `PULL_REQUEST_MILESTONE` - The number of the milestone to associate this pull request with.
- `PULL_REQUEST_BRANCH` - The branch name. See **Branch naming** below for details.
- `BRANCH_SUFFIX` - The branch suffix type. Valid values are `short-commit-hash` (default) and `timestamp` . See **Branch naming** below for details.
2019-09-24 20:00:49 +09:00
The following parameters are available for debugging and troubleshooting.
- `DEBUG_EVENT` - If present, outputs the event data that triggered the workflow.
- `SKIP_IGNORE` - If present, the `ignore_event` function will be skipped.
2019-07-16 19:58:27 +09:00
#### Branch naming
The variable `PULL_REQUEST_BRANCH` defaults to `create-pull-request/patch` .
Commits will be made to a branch with this name and suffixed with the short SHA1 commit hash.
e.g.
```
create-pull-request/patch-fcdfb59
create-pull-request/patch-394710b
```
2019-09-25 23:58:47 +09:00
Alternatively, branches can be suffixed with a timestamp by setting the environment variable `BRANCH_SUFFIX` to the value `timestamp` . This option must be used if multiple pull requests will be created during the execution of a workflow.
2019-09-24 20:00:49 +09:00
e.g.
```
create-pull-request/patch-1569322532
create-pull-request/patch-1569322552
```
2019-07-16 19:58:27 +09:00
#### 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.
## Example
2019-09-24 20:00:49 +09:00
Here is an example that sets all the main environment variables.
2019-07-16 19:58:27 +09:00
2019-08-13 18:14:43 +09:00
```yml
2019-09-26 18:07:43 +09:00
on:
repository_dispatch:
types: [create-pull-request]
name: create-pull-request workflow
jobs:
createPullRequest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Create report file
run: touch report.txt
2019-08-13 18:14:43 +09:00
- name: Create Pull Request
2019-09-26 18:07:43 +09:00
uses: peter-evans/create-pull-request@v1 .3.1
2019-08-13 18:14:43 +09:00
env:
2019-08-13 18:26:08 +09:00
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2019-09-26 18:07:43 +09:00
COMMIT_MESSAGE: Add report file
PULL_REQUEST_BODY: This PR is auto-generated by [create-pull-request ](https://github.com/peter-evans/create-pull-request ).
2019-09-26 19:03:42 +09:00
PULL_REQUEST_TITLE: '[Example] Add report file'
2019-09-26 18:07:43 +09:00
PULL_REQUEST_LABELS: report, automated pr
PULL_REQUEST_ASSIGNEES: peter-evans
PULL_REQUEST_REVIEWERS: peter-evans
PULL_REQUEST_MILESTONE: 1
PULL_REQUEST_BRANCH: example-patches
2019-09-24 20:27:25 +09:00
BRANCH_SUFFIX: short-commit-hash
2019-07-16 19:58:27 +09:00
```
2019-07-16 20:42:29 +09:00
This configuration will create pull requests that look like this:
2019-07-16 20:43:33 +09:00
2019-07-16 20:42:29 +09:00

2019-07-16 19:58:27 +09:00
## License
MIT License - see the [LICENSE ](LICENSE ) file for details