.github | ||
.gitignore | ||
create-pull-request.py | ||
Dockerfile | ||
LICENSE | ||
pull-request-example.png | ||
README.md | ||
renovate.json | ||
requirements.txt |
Create Pull Request
A GitHub action to create a pull request for changes to your repository in the actions workspace.
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. The changes will be automatically committed to a new branch and a pull request created.
Create Pull Request action will:
- Check for repository changes in the Actions workspace. This includes untracked (new) files as well as modified files.
- Commit all changes to a new branch. The commit will be made using the name and email of the
HEAD
commit author. - Create a pull request to merge the new branch into the currently active branch executing the workflow.
Note: Modifying a repository during workflows is not good practice in general. However, this action opens up some interesting possibilities when used carefully. This action is experimental and may not work well for some use cases.
Usage
Linux
- name: Create Pull Request
uses: peter-evans/create-pull-request@v1.3.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Multi platform - Linux, MacOS, Windows (beta)
- name: Create Pull Request
uses: peter-evans/create-pull-request@v1.3.1-multi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
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.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 areshort-commit-hash
(default) andtimestamp
. See Branch naming below for details.
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, theignore_event
function will be skipped.
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
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.
e.g.
create-pull-request/patch-1569322532
create-pull-request/patch-1569322552
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
Here is an example that sets all the main environment variables.
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
- name: Create Pull Request
uses: peter-evans/create-pull-request@v1.3.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
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).
PULL_REQUEST_TITLE: '[Example] Add report file'
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
BRANCH_SUFFIX: short-commit-hash
This configuration will create pull requests that look like this:
License
MIT License - see the LICENSE file for details