Compare commits

...

81 Commits

Author SHA1 Message Date
afcf57957d Merge pull request #287 from peter-evans/update-distribution
Update distribution
2020-05-11 14:09:44 +09:00
8cc3564bf3 Update distribution 2020-05-11 05:09:19 +00:00
6910c5cd03 Merge pull request #271 from peter-evans/renovate/setuptools-46.x
Update dependency setuptools to v46.2.0
2020-05-11 14:07:27 +09:00
14836c6ff3 Update dependency setuptools to v46.2.0 2020-05-11 05:04:42 +00:00
8fbfcfbcbb Revert "Temporarily use deprecated output"
This reverts commit fbb7e0e650.
2020-05-11 14:01:43 +09:00
326f260418 Merge pull request #278 from peter-evans/update-distribution
Update distribution
2020-05-11 13:59:07 +09:00
75104b7d7e Update distribution 2020-05-11 04:58:23 +00:00
fbb7e0e650 Temporarily use deprecated output 2020-05-11 13:55:32 +09:00
0f1e60a1f8 Merge pull request #264 from peter-evans/dev
Deprecate pr_number, project and project-column
2020-05-11 13:50:08 +09:00
caa116d991 Deprecate project and project-column 2020-05-10 19:02:35 +09:00
d2f72f0799 Update workflows 2020-05-10 18:09:48 +09:00
ded05960f3 Deprecate pr_number output 2020-05-10 18:06:32 +09:00
eb605db8a3 Fix casing 2020-05-10 17:58:21 +09:00
b11e4c665b Merge pull request #263 from christopherthielen/patch-1
docs: request-on-parent  ->  request-to-parent
2020-05-09 07:43:25 +09:00
65327d17a5 docs: request-on-parent -> request-to-parent 2020-05-08 11:03:56 -07:00
0837238e66 Merge pull request #239 from peter-evans/update-distribution
Update distribution
2020-05-06 12:47:46 +09:00
17bd947e89 Update distribution 2020-05-06 03:42:38 +00:00
24b42ba7f4 Merge pull request #240 from peter-evans/renovate/gitpython-3.x
Update dependency GitPython to v3.1.2
2020-05-06 12:40:52 +09:00
c0aaf5bab9 Update documentation 2020-05-06 11:37:48 +09:00
968cb0f4d9 Ignore documentation paths 2020-05-06 11:31:35 +09:00
9d6f73d546 Update documentation 2020-05-06 11:23:37 +09:00
70d240d0c4 Add update dependencies workflow 2020-05-06 10:51:06 +09:00
7bb7d96c96 Update dependency GitPython to v3.1.2 2020-05-06 01:49:21 +00:00
66fcd19e8d Whitelist pip requirements updates 2020-05-06 10:46:29 +09:00
d93f2b46fd Update dependency jest to v26.0.1 2020-05-05 12:23:22 +00:00
246328e3d8 Add ci badge 2020-05-05 14:24:35 +09:00
61cff7c673 Update dependency jest to v26 2020-05-04 19:59:11 +00:00
46ba7bdfe8 Merge pull request #229 from peter-evans/update-distribution
Update distribution
2020-05-03 12:18:11 +09:00
d650be7389 Update distribution 2020-05-03 03:15:56 +00:00
2f7173349f Fix dist requirements version 2020-05-03 12:13:39 +09:00
4ca95026d7 Ignore dist for renovate updates 2020-05-03 12:12:19 +09:00
64c4efd526 Merge pull request #219 from peter-evans/renovate/pygithub-1.x
Update dependency PyGithub to v1.51
2020-05-03 11:46:05 +09:00
16e35685ce Update dependency PyGithub to v1.51 2020-05-03 02:36:00 +00:00
3b12cf0165 Merge pull request #220 from peter-evans/fix-ci
Fix CI workflow
2020-05-03 11:35:02 +09:00
2a283f5fc3 Fix ci workflow 2020-05-03 11:31:45 +09:00
8ed207bcca Merge pull request #214 from peter-evans/update-distribution
Update distribution
2020-05-02 21:56:54 +09:00
bd1f6727cd Update distribution 2020-05-02 11:27:54 +00:00
9a3acf8f32 Update dependency jest to v25.5.4 2020-05-02 11:26:02 +00:00
b38fd9eb87 Merge pull request #206 from peter-evans/renovate/actions-tool-cache-1.x
Update dependency @actions/tool-cache to v1.3.4
2020-05-02 19:28:31 +09:00
4a9e76e377 Update dependency @actions/tool-cache to v1.3.4 2020-05-02 09:57:02 +00:00
8cb4c8b741 Merge pull request #201 from peter-evans/update-distribution
Update distribution
2020-05-02 17:47:24 +09:00
b9eb5dd95e Update distribution 2020-05-02 08:45:04 +00:00
5502904068 Merge pull request #191 from peter-evans/renovate/actions-core-1.x
Update dependency @actions/core to v1.2.4
2020-05-02 17:43:01 +09:00
56ad1fed7b Update dependency @actions/core to v1.2.4 2020-05-02 08:40:54 +00:00
2132f428f6 Merge pull request #192 from peter-evans/renovate/actions-exec-1.x
Update dependency @actions/exec to v1.0.4
2020-05-02 17:40:28 +09:00
c558d39395 Update dependency @actions/exec to v1.0.4 2020-05-02 08:30:46 +00:00
db640fa8db Merge pull request #168 from peter-evans/renovate/jest-monorepo
Update dependency jest to v25.5.3
2020-05-02 16:07:29 +09:00
95d6677567 Merge pull request #171 from peter-evans/ci
Add CI workflow
2020-05-02 16:04:14 +09:00
1f4e24248b Update test suite command 2020-05-02 16:02:02 +09:00
08595270b5 Filter by comment author 2020-05-02 15:32:34 +09:00
237244614a Remove author search condition 2020-05-02 15:25:52 +09:00
6295d61f0c Rename job 2020-05-02 15:19:44 +09:00
d4024e2876 Add test suite help comment 2020-05-02 15:13:50 +09:00
ee96ad03d9 Auto merge dev dependency updates 2020-05-02 14:55:39 +09:00
755b39d2ff Pin dependencies 2020-05-02 14:55:07 +09:00
9f95ac6c53 Setup python for missing pip dependency 2020-05-02 14:50:21 +09:00
cedbe4ad47 Add ci workflow 2020-05-02 14:46:15 +09:00
0e48ed8743 Update dependency jest to v25.5.3 2020-04-30 22:19:12 +00:00
e7291b422e Merge pull request #166 from peter-evans/renovate/jest-monorepo
Update dependency jest to v25.5.0
2020-04-29 08:08:26 +09:00
eb824681a8 Update dependency jest to v25.5.0 2020-04-28 19:53:37 +00:00
4cc13107a9 Merge pull request #165 from peter-evans/dev
Update dependency PyGithub to v1.50
2020-04-27 12:06:54 +09:00
c71b8e4206 Update vendored dependencies 2020-04-27 11:48:52 +09:00
e2bf7f9b75 Update dependency PyGithub to v1.50 2020-04-27 11:47:17 +09:00
e1f4cfdcd4 Merge pull request #162 from peter-evans/renovate/jest-monorepo
Update dependency jest to v25.4.0
2020-04-20 10:43:20 +09:00
b3f0552507 Update dependency jest to v25.4.0 2020-04-19 21:52:02 +00:00
f4be118b21 Merge pull request #160 from peter-evans/dev
Update dependency GitPython to v3.1.1
2020-04-14 12:02:29 +09:00
c9f22f86fb Vendor wheel 2020-04-14 11:48:20 +09:00
35d5f3c8ae Vendor setuptools 2020-04-14 11:43:07 +09:00
000a0fc06a Update vendored dependencies 2020-04-13 17:53:37 +09:00
2a59f517a7 Update dependency GitPython to v3.1.1 2020-04-13 17:51:52 +09:00
48ce89bc7d Update documentation 2020-04-13 09:57:57 +09:00
6570353abb Update README 2020-04-13 09:36:37 +09:00
8f6cecd6c4 Update workflow 2020-04-10 17:11:29 +09:00
e14ef3b543 Update README 2020-04-10 17:10:06 +09:00
c5778e5181 Merge pull request #157 from peter-evans/renovate/jest-monorepo
Update dependency jest to v25.3.0
2020-04-09 00:23:26 +09:00
374fc61fef Update dependency jest to v25.3.0 2020-04-08 14:53:23 +00:00
6fa547cc6f Update documentation 2020-04-06 09:37:35 +09:00
4db3619128 Merge pull request #154 from peter-evans/renovate/zeit-ncc-0.x
Update dependency @zeit/ncc to v0.22.1
2020-04-06 09:10:47 +09:00
989a8308ec Update dependency @zeit/ncc to v0.22.1 2020-04-05 20:34:21 +00:00
6249109e58 Update documentation 2020-04-05 18:17:05 +09:00
c9b850c450 Update workflow 2020-04-04 18:26:59 +09:00
35 changed files with 2215 additions and 2301 deletions

125
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,125 @@
name: CI
on:
push:
branches: [master]
paths-ignore:
- 'README.md'
- 'docs/**'
pull_request:
branches: [master]
paths-ignore:
- 'README.md'
- 'docs/**'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12.x
- uses: actions/setup-python@v2
with:
python-version: '3.x'
- run: npm ci
- run: npm run clean
- run: npm run test
- run: npm run package
- uses: actions/upload-artifact@v2
with:
name: dist
path: dist
test:
needs: [build]
runs-on: ubuntu-latest
strategy:
matrix:
target: [built, committed]
steps:
- if: github.event_name == 'push'
uses: actions/checkout@v2
- if: github.event_name == 'pull_request'
uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
- if: matrix.target == 'built' || github.event_name == 'pull_request'
uses: actions/download-artifact@v2
with:
name: dist
path: dist
- name: Create change
run: date +%s > report.txt
- name: Create Pull Request
id: cpr
uses: ./
with:
commit-message: '[CI] test ${{ matrix.target }}'
committer: GitHub <noreply@github.com>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
title: '[CI] test ${{ matrix.target }}'
body: |
- CI test case for target '${{ matrix.target }}'
Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
branch: ci-test-${{ matrix.target }}
- name: Close Pull
uses: peter-evans/close-pull@v1
with:
pull-request-number: ${{ steps.cpr.outputs.pull-request-number }}
comment: '[CI] test ${{ matrix.target }}'
delete-branch: true
commentTestSuiteHelp:
if: github.event_name == 'pull_request'
needs: [test]
runs-on: ubuntu-latest
steps:
- name: Find Comment
uses: peter-evans/find-comment@v1
id: fc
with:
issue-number: ${{ github.event.number }}
comment-author: 'github-actions[bot]'
body-includes: Full test suite slash command
- if: steps.fc.outputs.comment-id == ''
name: Create comment
uses: peter-evans/create-or-update-comment@v1
with:
issue-number: ${{ github.event.number }}
body: |
Full test suite slash command (repository admin only)
```
/test repository=${{ github.event.pull_request.head.repo.full_name }} branch=${{ github.event.pull_request.head.ref }} build=true
```
package:
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: dist
path: dist
- name: Create Pull Request
uses: peter-evans/create-pull-request@v2
with:
commit-message: Update distribution
committer: GitHub <noreply@github.com>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
title: Update distribution
body: |
- Updates the distribution for changes on `master`
Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
branch: update-distribution

View File

@ -7,14 +7,17 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Create report file
run: date +%s > report.txt
- name: Create Pull Request
id: cpr
uses: ./
with:
commit-message: Add report file
committer: Peter Evans <peter-evans@users.noreply.github.com>
committer: GitHub <noreply@github.com>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
title: '[Example] Add report file'
body: |
New report
@ -26,19 +29,18 @@ jobs:
assignees: peter-evans
reviewers: peter-evans
milestone: 1
project: Example Project
project-column: To do
draft: false
branch: example-patches
request-to-parent: false
- name: Check outputs
run: |
echo "Pull Request Number - ${{ env.PULL_REQUEST_NUMBER }}"
echo "Pull Request Number - ${{ steps.cpr.outputs.pr_number }}"
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
- name: Add reaction
uses: peter-evans/create-or-update-comment@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
comment-id: ${{ github.event.client_payload.github.payload.comment.id }}
reaction-type: hooray

31
.github/workflows/update-dep.yml vendored Normal file
View File

@ -0,0 +1,31 @@
name: Update Dependencies
on:
schedule:
- cron: '0 1 * * 4'
jobs:
update-dep:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '12.x'
- name: Update dependencies
run: |
npx -p npm-check-updates ncu -u
npm install
- name: Create Pull Request
uses: peter-evans/create-pull-request@v2
with:
token: ${{ secrets.ACTIONS_BOT_TOKEN }}
commit-message: Update dependencies
committer: GitHub <noreply@github.com>
author: actions-bot <actions-bot@users.noreply.github.com>
title: Update dependencies
body: |
- Dependency updates
Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
branch: update-dependencies

View File

@ -1,4 +1,5 @@
# <img width="24" height="24" src="docs/assets/logo.svg"> Create Pull Request
[![CI](https://github.com/peter-evans/create-pull-request/workflows/CI/badge.svg)](https://github.com/peter-evans/create-pull-request/actions?query=workflow%3ACI)
[![GitHub Marketplace](https://img.shields.io/badge/Marketplace-Create%20Pull%20Request-blue.svg?colorA=24292e&colorB=0366d6&style=flat&longCache=true&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAM6wAADOsB5dZE0gAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAERSURBVCiRhZG/SsMxFEZPfsVJ61jbxaF0cRQRcRJ9hlYn30IHN/+9iquDCOIsblIrOjqKgy5aKoJQj4O3EEtbPwhJbr6Te28CmdSKeqzeqr0YbfVIrTBKakvtOl5dtTkK+v4HfA9PEyBFCY9AGVgCBLaBp1jPAyfAJ/AAdIEG0dNAiyP7+K1qIfMdonZic6+WJoBJvQlvuwDqcXadUuqPA1NKAlexbRTAIMvMOCjTbMwl1LtI/6KWJ5Q6rT6Ht1MA58AX8Apcqqt5r2qhrgAXQC3CZ6i1+KMd9TRu3MvA3aH/fFPnBodb6oe6HM8+lYHrGdRXW8M9bMZtPXUji69lmf5Cmamq7quNLFZXD9Rq7v0Bpc1o/tp0fisAAAAASUVORK5CYII=)](https://github.com/marketplace/actions/create-pull-request)
A GitHub action to create a pull request for changes to your repository in the actions workspace.
@ -35,7 +36,7 @@ You can also pin to a [specific release](https://github.com/peter-evans/create-p
All inputs are **optional**. If not set, sensible default values will be used.
**Note**: If you want pull requests created by this action to trigger an `on: push` or `on: pull_request` workflow then you must use a [Personal Access Token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line) instead of the default `GITHUB_TOKEN`. Alternatively, allow the action to [push using SSH](https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#push-using-ssh-deploy-keys) by configuring a deploy key.
**Note**: If you want pull requests created by this action to trigger an `on: push` or `on: pull_request` workflow then you cannot use the default `GITHUB_TOKEN`. See the [documentation here](https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#triggering-further-workflow-runs) for workarounds.
| Name | Description | Default |
| --- | --- | --- |
@ -49,17 +50,17 @@ All inputs are **optional**. If not set, sensible default values will be used.
| `labels` | A comma separated list of labels. | |
| `assignees` | A comma separated list of assignees (GitHub usernames). | |
| `reviewers` | A comma separated list of reviewers (GitHub usernames) to request a review from. | |
| `team-reviewers` | A comma separated list of GitHub teams to request a review from. | |
| `team-reviewers` | A comma separated list of GitHub teams to request a review from. A `repo` scoped [PAT](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) may be required. See [this issue](https://github.com/peter-evans/create-pull-request/issues/155). | |
| `milestone` | The number of the milestone to associate this pull request with. | |
| `project` | The name of the project for which a card should be created. Requires `project-column`. | |
| `project-column` | The name of the project column under which a card should be created. Requires `project`. | |
| `project` | *Deprecated*. See [Create a project card](#create-a-project-card) for details. | |
| `project-column` | *Deprecated*. See [Create a project card](#create-a-project-card) for details. | |
| `draft` | Create a [draft pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests#draft-pull-requests). | `false` |
| `branch` | The branch name. See [Branch naming](#branch-naming) for details. | `create-pull-request/patch` |
| `request-to-parent` | Create the pull request in the parent repository of the checked out fork. See [push pull request branches to a fork](https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#push-pull-request-branches-to-a-fork) for details. | `false` |
| `base` | Sets the pull request base branch. | Defaults to the branch checked out in the workflow. |
| `branch-suffix` | The branch suffix type. Valid values are `random`, `timestamp` and `short-commit-hash`. See [Branch naming](#branch-naming) for details. | |
**Outputs**
### Action outputs
The pull request number is output as both an environment variable and a step output.
Note that in order to read the step output the action step must have an id.
@ -71,7 +72,7 @@ Note that in order to read the step output the action step must have an id.
- name: Check outputs
run: |
echo "Pull Request Number - ${{ env.PULL_REQUEST_NUMBER }}"
echo "Pull Request Number - ${{ steps.cpr.outputs.pr_number }}"
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
```
### Checkout
@ -112,12 +113,13 @@ If there are files or directories you want to ignore you can simply add them to
If neither `committer` or `author` inputs are supplied the action will default to making commits that appear to be made by the GitHub Actions bot user.
In most cases, where the committer and author are the same, just the committer can be set.
The following configuration can be used to have commits authored by the user who triggered the workflow event.
```yml
- name: Create Pull Request
uses: peter-evans/create-pull-request@v2
with:
committer: Peter Evans <peter-evans@users.noreply.github.com>
committer: GitHub <noreply@github.com>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
```
### Controlling commits
@ -142,6 +144,23 @@ As well as relying on the action to handle uncommitted changes, you can addition
uses: peter-evans/create-pull-request@v2
```
### 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.
```yml
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v2
- name: Create or Update Project Card
uses: peter-evans/create-or-update-project-card@v1
with:
project-name: My project
column-name: My column
issue-number: ${{ steps.cpr.outputs.pull-request-number }}
```
## Reference Example
The following workflow is a reference example that sets all the main inputs.
@ -164,8 +183,8 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Add report file
committer: Peter Evans <peter-evans@users.noreply.github.com>
author: Peter Evans <peter-evans@users.noreply.github.com>
committer: GitHub <noreply@github.com>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
title: '[Example] Add report file'
body: |
New report
@ -178,15 +197,13 @@ jobs:
reviewers: peter-evans
team-reviewers: owners, maintainers
milestone: 1
project: Example Project
project-column: To do
draft: false
branch: example-patches
request-to-parent: false
- name: Check outputs
run: |
echo "Pull Request Number - ${{ env.PULL_REQUEST_NUMBER }}"
echo "Pull Request Number - ${{ steps.cpr.outputs.pr_number }}"
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
```
This reference configuration will create pull requests that look like this:

View File

@ -27,9 +27,9 @@ inputs:
milestone:
description: 'The number of the milestone to associate this pull request with.'
project:
description: 'The name of the project for which a card should be created.'
description: 'Deprecated. See README for details.'
project-column:
description: 'The name of the project column under which a card should be created.'
description: 'Deprecated. See README for details.'
branch:
description: 'The pull request branch name.'
request-to-parent:
@ -40,7 +40,7 @@ inputs:
branch-suffix:
description: 'The branch suffix type.'
outputs:
pr_number:
pull-request-number:
description: 'The pull request number'
runs:
using: 'node12'

View File

@ -113,6 +113,8 @@ def create_or_update_pull_request(
# Set the output variables
os.system(f"echo ::set-env name=PULL_REQUEST_NUMBER::{pull_request.number}")
os.system(f"echo ::set-output name=pull-request-number::{pull_request.number}")
# 'pr_number' is deprecated
os.system(f"echo ::set-output name=pr_number::{pull_request.number}")
# Set labels, assignees and milestone

View File

@ -1,2 +1,4 @@
GitPython==3.1.0
PyGithub==1.47
setuptools==46.2.0
wheel==0.34.2
GitPython==3.1.2
PyGithub==1.51

2497
dist/index.js vendored

File diff suppressed because it is too large Load Diff

Binary file not shown.

BIN
dist/vendor/GitPython-3.1.1.tar.gz vendored Normal file

Binary file not shown.

BIN
dist/vendor/GitPython-3.1.2.tar.gz vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
dist/vendor/PyGithub-1.50.tar.gz vendored Normal file

Binary file not shown.

BIN
dist/vendor/PyGithub-1.51.tar.gz vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
dist/vendor/certifi-2020.4.5.1.tar.gz vendored Normal file

Binary file not shown.

BIN
dist/vendor/gitdb-4.0.5.tar.gz vendored Normal file

Binary file not shown.

BIN
dist/vendor/setuptools-46.1.3.zip vendored Normal file

Binary file not shown.

BIN
dist/vendor/setuptools-46.2.0.zip vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
dist/vendor/smmap-3.0.2.tar.gz vendored Normal file

Binary file not shown.

BIN
dist/vendor/smmap-3.0.4.tar.gz vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
dist/vendor/urllib3-1.25.9.tar.gz vendored Normal file

Binary file not shown.

BIN
dist/vendor/wheel-0.34.2.tar.gz vendored Normal file

Binary file not shown.

View File

@ -9,6 +9,7 @@ This document covers terminology, how the action works, general usage guidelines
- [Providing a consistent base](#providing-a-consistent-base)
- [Pull request events](#pull-request-events)
- [Restrictions on forked repositories](#restrictions-on-forked-repositories)
- [Triggering further workflow runs](#triggering-further-workflow-runs)
- [Security](#security)
- [Advanced usage](#advanced-usage)
- [Creating pull requests in a remote repository](#creating-pull-requests-in-a-remote-repository)
@ -113,6 +114,23 @@ jobs:
if: github.event.pull_request.head.repo.full_name == github.repository
```
### Triggering further workflow runs
Pull requests created by the action using the default `GITHUB_TOKEN` cannot trigger other workflows. If you have `on: pull_request` or `on: push` workflows acting as checks on pull requests, they will not run.
> When you use the repository's GITHUB_TOKEN to perform tasks on behalf of the GitHub Actions app, events triggered by the GITHUB_TOKEN will not create a new workflow run.
[GitHub Actions: Events that trigger workflows](https://help.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token)
#### Workarounds to trigger further workflow runs
There are a number of workarounds with different pros and cons.
- Use the default `GITHUB_TOKEN` and allow the action to create pull requests that have no checks enabled. Manually close pull requests and immediately reopen them. This will enable `on: pull_request` workflows to run and be added as checks.
- Use a `repo` scoped [Personal Access Token (PAT)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) created on an account that has write access to the repository that pull requests are being created in. This is the standard workaround and [recommended by GitHub](https://help.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token). However, the PAT cannot be scoped to a specific repository so the token becomes a very sensitive secret. If this is a concern, the PAT can instead be created for a dedicated [machine account](https://help.github.com/en/github/site-policy/github-terms-of-service#3-account-requirements) that has collaborator access to the repository. Also note that because the account that owns the PAT will be the creator of pull requests, that user account will be unable to perform actions such as request changes or approve the pull request.
- Use [SSH (deploy keys)](#push-using-ssh-deploy-keys) to push the pull request branch. This is arguably more secure than using a PAT because deploy keys can be set per repository. However, this method will only trigger `on: push` workflows.
- Use a [machine account that creates pull requests from its own fork](#push-pull-request-branches-to-a-fork). This is the most secure because the PAT created only grants access to the machine account's fork, not the main repository. This method will trigger `on: pull_request` workflows to run. Workflows triggered `on: push` will not run because the push event is in the fork.
### Security
From a security perspective it's good practice to fork third-party actions, review the code, and use your fork of the action in workflows.
@ -188,22 +206,22 @@ It will use their own fork to push code and create the pull request.
3. Create a [Personal Access Token (PAT)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line).
4. Logout and log back in to your main user account.
5. Add a secret to your repository containing the above PAT.
6. As shown in the following example workflow, switch the git remote to the fork's URL after checkout and set the action input `request-on-parent` to `true`.
6. As shown in the following example workflow, switch the git remote to the fork's URL after checkout and set the action input `request-to-parent` to `true`.
```yaml
- uses: actions/checkout@v2
- run: |
git config user.password ${{ secrets.PAT }}
git remote set-url origin https://github.com/bot-user/fork-project
git config user.password ${{ secrets.MACHINE_USER_PAT }}
git remote set-url origin https://github.com/machine-user/fork-of-repository
git fetch --unshallow -p origin
# Make changes to pull request here
- uses: peter-evans/create-pull-request@v2
with:
token: ${{ secrets.PAT }}
request-on-parent: true
token: ${{ secrets.MACHINE_USER_PAT }}
request-to-parent: true
```
### Running in a container

View File

@ -86,32 +86,62 @@ This pattern will work well for updating any kind of static content from an exte
### Update NPM dependencies
This workflow will create a pull request for npm dependencies.
It works best in combination with a build workflow triggered on `push` and `pull_request`.
A [Personal Access Token (PAT)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) can be used in order for the creation of the pull request to trigger further workflows. See the [documentation here](https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#triggering-further-workflow-runs) for further details.
```yml
name: Update Dependencies
on:
schedule:
- cron: '0 10 * * 1'
jobs:
update-deps:
update-dep:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '10.x'
node-version: '12.x'
- name: Update dependencies
id: vars
run: |
npm install -g npm-check-updates
ncu -u
npx -p npm-check-updates ncu -u
npm install
- name: Create Pull Request
uses: peter-evans/create-pull-request@v2
with:
commit-message: update dependencies
title: Automated Dependency Updates
body: This is an auto-generated PR with dependency updates.
branch: dep-updates
token: ${{ secrets.PAT }}
commit-message: Update dependencies
title: Update dependencies
body: |
- Dependency updates
Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
branch: update-dependencies
```
The above workflow works best in combination with a build workflow triggered on `push` and `pull_request`.
```yml
name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12.x
- run: npm ci
- run: npm run test
- run: npm run build
```
### Update SwaggerUI for GitHub Pages
@ -243,7 +273,7 @@ An `on: repository_dispatch` workflow can be triggered from another workflow wit
```yml
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v1.0.0
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.REPO_ACCESS_TOKEN }}
repository: username/my-repo

1688
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -23,14 +23,14 @@
},
"homepage": "https://github.com/peter-evans/create-pull-request",
"dependencies": {
"@actions/core": "^1.1.1",
"@actions/exec": "^1.0.1",
"@actions/tool-cache": "^1.1.2",
"is-docker": "^2.0.0"
"@actions/core": "1.2.4",
"@actions/exec": "1.0.4",
"@actions/tool-cache": "1.3.4",
"is-docker": "2.0.0"
},
"devDependencies": {
"@zeit/ncc": "0.22.0",
"@zeit/ncc": "0.22.1",
"eslint": "6.8.0",
"jest": "25.2.7"
"jest": "26.0.1"
}
}

View File

@ -1,5 +1,9 @@
{
"extends": [
"config:base"
],
"enabledManagers": ["pip_requirements"],
"ignorePaths": [
"**/dist/**"
]
}

View File

@ -113,6 +113,8 @@ def create_or_update_pull_request(
# Set the output variables
os.system(f"echo ::set-env name=PULL_REQUEST_NUMBER::{pull_request.number}")
os.system(f"echo ::set-output name=pull-request-number::{pull_request.number}")
# 'pr_number' is deprecated
os.system(f"echo ::set-output name=pr_number::{pull_request.number}")
# Set labels, assignees and milestone

View File

@ -1,2 +1,4 @@
GitPython==3.1.0
PyGithub==1.47
setuptools==46.2.0
wheel==0.34.2
GitPython==3.1.2
PyGithub==1.51

View File

@ -64,7 +64,7 @@ async function run() {
projectColumn: core.getInput("project-column"),
draft: core.getInput("draft"),
branch: core.getInput("branch"),
request_to_parent: core.getInput("request-to-parent"),
requestToParent: core.getInput("request-to-parent"),
base: core.getInput("base"),
branchSuffix: core.getInput("branch-suffix")
};
@ -87,7 +87,7 @@ async function run() {
if (inputs.projectColumn) process.env.CPR_PROJECT_COLUMN_NAME = inputs.projectColumn;
if (inputs.draft) process.env.CPR_DRAFT = inputs.draft;
if (inputs.branch) process.env.CPR_BRANCH = inputs.branch;
if (inputs.request_to_parent) process.env.CPR_REQUEST_TO_PARENT = inputs.request_to_parent;
if (inputs.requestToParent) process.env.CPR_REQUEST_TO_PARENT = inputs.requestToParent;
if (inputs.base) process.env.CPR_BASE = inputs.base;
if (inputs.branchSuffix) process.env.CPR_BRANCH_SUFFIX = inputs.branchSuffix;