mirror of
https://github.com/actions/github-script.git
synced 2026-10-15 20:06:55 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f891eff651 | ||
|
|
43434074d0 | ||
|
|
ab3c97fb6b | ||
|
|
e02270e59f | ||
|
|
c07f5aaf74 | ||
|
|
49d397a538 | ||
|
|
6f9b9a87b5 | ||
|
|
6456c11da2 | ||
|
|
a8325789f1 | ||
|
|
771c6ccbd2 | ||
|
|
854d2138dc | ||
|
|
f9d46abb2a | ||
|
|
aaceb2cf67 | ||
|
|
5ed343d94b | ||
|
|
a7abfdfa4d | ||
|
|
4294354415 | ||
|
|
ecb772f447 | ||
|
|
5fa6e37385 | ||
|
|
936c9d9f72 | ||
|
|
672319273b | ||
|
|
7c21e3730f | ||
|
|
787406b248 | ||
|
|
bfb7c2383c | ||
|
|
c32ce148a6 | ||
|
|
cec08706ee | ||
|
|
a3e7071a34 | ||
|
|
3858e71d11 | ||
|
|
2b34a689ec | ||
|
|
85e88a66ea | ||
|
|
5cbb702e24 | ||
|
|
1ef7fd09ca | ||
|
|
a49bf6b2cd | ||
|
|
95fb649573 | ||
|
|
2923e50f29 | ||
|
|
b616178d6d | ||
|
|
c758586ea1 | ||
|
|
256da4ea4d | ||
|
|
5ee517dae8 | ||
|
|
fb7e8f7c67 | ||
|
|
4a93ad9f9e | ||
|
|
19e7914023 | ||
|
|
3ede58996d | ||
|
|
01f87b6c01 | ||
|
|
b0e12e725b | ||
|
|
7e12bd7395 | ||
|
|
7e8659dcd4 | ||
|
|
d37f92ff11 | ||
|
|
1f8fc98741 | ||
|
|
f57c84a8e8 | ||
|
|
ade5cea985 | ||
|
|
c1c139b0ab | ||
|
|
3ca4cd5a00 | ||
|
|
83c92d6511 | ||
|
|
c416f56b51 | ||
|
|
75e3a5b35d | ||
|
|
e853490b13 | ||
|
|
f4e5d39c2a | ||
|
|
ddba1b195d | ||
|
|
59cb74c2ee | ||
|
|
5467f2a1ed | ||
|
|
c72dc00003 | ||
|
|
bb407510e7 | ||
|
|
3673bc4c4f |
No files matched your search
@@ -0,0 +1,52 @@
|
|||||||
|
# `dist/index.js` is a special file in Actions.
|
||||||
|
# When you reference an action with `uses:` in a workflow,
|
||||||
|
# `index.js` is the code that will run.
|
||||||
|
# For our project, we generate this file through a build process
|
||||||
|
# from other source files.
|
||||||
|
# We need to make sure the checked-in `index.js` actually matches what we expect it to be.
|
||||||
|
name: Check dist/
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths-ignore:
|
||||||
|
- '**.md'
|
||||||
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- '**.md'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-dist:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set Node.js 12.x
|
||||||
|
uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: 12.x
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Rebuild the dist/ directory
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
|
- name: Compare the expected and actual dist/ directories
|
||||||
|
run: |
|
||||||
|
if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then
|
||||||
|
echo "Detected uncommitted changes after build. See status below:"
|
||||||
|
git diff
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
id: diff
|
||||||
|
|
||||||
|
# If index.js was different than expected, upload the expected version as an artifact
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
|
||||||
|
with:
|
||||||
|
name: dist
|
||||||
|
path: dist/
|
||||||
@@ -1,21 +1,20 @@
|
|||||||
name: CI
|
name: CI
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push: {branches: main}
|
push:
|
||||||
pull_request: {branches: main}
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ci:
|
ci:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v2
|
||||||
with: {node-version: 13.x}
|
|
||||||
- uses: actions/cache@v1
|
|
||||||
with:
|
with:
|
||||||
path: ~/.npm
|
node-version: 12
|
||||||
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
|
cache: npm
|
||||||
restore-keys: ${{runner.os}}-npm-
|
|
||||||
- run: npm ci
|
- run: npm ci
|
||||||
- run: npm run style:check
|
- run: npm run style:check
|
||||||
- run: npm test
|
- run: npm test
|
||||||
@@ -1,14 +1,18 @@
|
|||||||
name: Integration
|
name: Integration
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push: {branches: main}
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
integration:
|
test-return:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
- id: output-set
|
- id: output-set
|
||||||
uses: actions/github-script@main
|
uses: ./
|
||||||
with:
|
with:
|
||||||
script: return core.getInput('input-value')
|
script: return core.getInput('input-value')
|
||||||
result-encoding: string
|
result-encoding: string
|
||||||
@@ -17,3 +21,39 @@ jobs:
|
|||||||
if [[ "${{steps.output-set.outputs.result}}" != "output" ]]; then
|
if [[ "${{steps.output-set.outputs.result}}" != "output" ]]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
test-relative-require:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- id: output-set
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
script: return require('./package.json').name
|
||||||
|
result-encoding: string
|
||||||
|
input-value: output
|
||||||
|
- run: |
|
||||||
|
if [[ "${{steps.output-set.outputs.result}}" != "github-script" ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
test-npm-require:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.npm
|
||||||
|
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
|
||||||
|
restore-keys: ${{runner.os}}-npm-
|
||||||
|
- run: npm ci
|
||||||
|
- id: output-set
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
script: return require('@actions/core/package.json').name
|
||||||
|
result-encoding: string
|
||||||
|
input-value: output
|
||||||
|
- run: |
|
||||||
|
if [[ "${{steps.output-set.outputs.result}}" != "@actions/core" ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@@ -1,10 +1,12 @@
|
|||||||
name: Licensed
|
name: Licensed
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push: {branches: main}
|
push:
|
||||||
pull_request: {branches: main}
|
branches:
|
||||||
repository_dispatch:
|
- main
|
||||||
workflow_dispatch:
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
@@ -12,16 +14,11 @@ jobs:
|
|||||||
name: Check licenses
|
name: Check licenses
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: ~/.npm
|
|
||||||
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
|
|
||||||
restore-keys: ${{runner.os}}-npm-
|
|
||||||
- run: npm ci
|
- run: npm ci
|
||||||
- name: Install licensed
|
- name: Install licensed
|
||||||
run: |-
|
run: |
|
||||||
cd $RUNNER_TEMP
|
cd $RUNNER_TEMP
|
||||||
curl -Lfs -o licensed.tar.gz https://github.com/github/licensed/releases/download/2.9.2/licensed-2.9.2-linux-x64.tar.gz
|
curl -Lfs -o licensed.tar.gz https://github.com/github/licensed/releases/download/2.12.2/licensed-2.12.2-linux-x64.tar.gz
|
||||||
sudo tar -xzf licensed.tar.gz
|
sudo tar -xzf licensed.tar.gz
|
||||||
sudo mv licensed /usr/local/bin/licensed
|
sudo mv licensed /usr/local/bin/licensed
|
||||||
- run: licensed status
|
- run: licensed status
|
||||||
@@ -2,7 +2,7 @@ name: Pull Request Test
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: main
|
branches: [main]
|
||||||
types: [opened, synchronize]
|
types: [opened, synchronize]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
@@ -12,12 +12,19 @@ input should be the body of an asynchronous function call. The following
|
|||||||
arguments will be provided:
|
arguments will be provided:
|
||||||
|
|
||||||
- `github` A pre-authenticated
|
- `github` A pre-authenticated
|
||||||
[octokit/core.js](https://github.com/octokit/core.js#readme) client with REST endpoints and pagination plugins
|
[octokit/rest.js](https://octokit.github.io/rest.js) client with pagination plugins
|
||||||
- `context` An object containing the [context of the workflow
|
- `context` An object containing the [context of the workflow
|
||||||
run](https://github.com/actions/toolkit/blob/main/packages/github/src/context.ts)
|
run](https://github.com/actions/toolkit/blob/main/packages/github/src/context.ts)
|
||||||
- `core` A reference to the [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) package
|
- `core` A reference to the [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) package
|
||||||
- `glob` A reference to the [@actions/glob](https://github.com/actions/toolkit/tree/main/packages/glob) package
|
- `glob` A reference to the [@actions/glob](https://github.com/actions/toolkit/tree/main/packages/glob) package
|
||||||
- `io` A reference to the [@actions/io](https://github.com/actions/toolkit/tree/main/packages/io) package
|
- `io` A reference to the [@actions/io](https://github.com/actions/toolkit/tree/main/packages/io) package
|
||||||
|
- `exec` A reference to the [@actions/exec](https://github.com/actions/toolkit/tree/main/packages/exec) package
|
||||||
|
- `require` A proxy wrapper around the normal Node.js `require` to enable
|
||||||
|
requiring relative paths (relative to the current working directory) and
|
||||||
|
requiring npm packages installed in the current working directory. If for
|
||||||
|
some reason you need the non-wrapped `require`, there is an escape hatch
|
||||||
|
available: `__original_require__` is the original value of `require` without
|
||||||
|
our wrapping applied.
|
||||||
|
|
||||||
Since the `script` is just a function body, these values will already be
|
Since the `script` is just a function body, these values will already be
|
||||||
defined, so you don't have to (see examples below).
|
defined, so you don't have to (see examples below).
|
||||||
@@ -38,7 +45,7 @@ The return value of the script will be in the step's outputs under the
|
|||||||
"result" key.
|
"result" key.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: actions/github-script@v3
|
- uses: actions/github-script@v4
|
||||||
id: set-result
|
id: set-result
|
||||||
with:
|
with:
|
||||||
script: return "Hello!"
|
script: return "Hello!"
|
||||||
@@ -57,10 +64,9 @@ output of a github-script step. For some workflows, string encoding is preferred
|
|||||||
`result-encoding` input:
|
`result-encoding` input:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: actions/github-script@v3
|
- uses: actions/github-script@v4
|
||||||
id: my-script
|
id: my-script
|
||||||
with:
|
with:
|
||||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
||||||
result-encoding: string
|
result-encoding: string
|
||||||
script: return "I will be string (not JSON) encoded!"
|
script: return "I will be string (not JSON) encoded!"
|
||||||
```
|
```
|
||||||
@@ -76,7 +82,7 @@ By default, github-script will use the token provided to your workflow.
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: View context attributes
|
- name: View context attributes
|
||||||
uses: actions/github-script@v3
|
uses: actions/github-script@v4
|
||||||
with:
|
with:
|
||||||
script: console.log(context)
|
script: console.log(context)
|
||||||
```
|
```
|
||||||
@@ -92,9 +98,8 @@ jobs:
|
|||||||
comment:
|
comment:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v3
|
- uses: actions/github-script@v4
|
||||||
with:
|
with:
|
||||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
||||||
script: |
|
script: |
|
||||||
github.issues.createComment({
|
github.issues.createComment({
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
@@ -115,9 +120,8 @@ jobs:
|
|||||||
apply-label:
|
apply-label:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v3
|
- uses: actions/github-script@v4
|
||||||
with:
|
with:
|
||||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
||||||
script: |
|
script: |
|
||||||
github.issues.addLabels({
|
github.issues.addLabels({
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
@@ -136,9 +140,8 @@ jobs:
|
|||||||
welcome:
|
welcome:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v3
|
- uses: actions/github-script@v4
|
||||||
with:
|
with:
|
||||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
||||||
script: |
|
script: |
|
||||||
// Get a list of all issues created by the PR opener
|
// Get a list of all issues created by the PR opener
|
||||||
// See: https://octokit.github.io/rest.js/#pagination
|
// See: https://octokit.github.io/rest.js/#pagination
|
||||||
@@ -180,9 +183,8 @@ jobs:
|
|||||||
diff:
|
diff:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v3
|
- uses: actions/github-script@v4
|
||||||
with:
|
with:
|
||||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
||||||
script: |
|
script: |
|
||||||
const diff_url = context.payload.pull_request.diff_url
|
const diff_url = context.payload.pull_request.diff_url
|
||||||
const result = await github.request(diff_url)
|
const result = await github.request(diff_url)
|
||||||
@@ -205,9 +207,8 @@ jobs:
|
|||||||
list-issues:
|
list-issues:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v3
|
- uses: actions/github-script@v4
|
||||||
with:
|
with:
|
||||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
||||||
script: |
|
script: |
|
||||||
const query = `query($owner:String!, $name:String!, $label:String!) {
|
const query = `query($owner:String!, $name:String!, $label:String!) {
|
||||||
repository(owner:$owner, name:$name){
|
repository(owner:$owner, name:$name){
|
||||||
@@ -240,15 +241,13 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/github-script@v3
|
- uses: actions/github-script@v4
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const script = require(`${process.env.GITHUB_WORKSPACE}/path/to/script.js`)
|
const script = require('./path/to/script.js')
|
||||||
console.log(script({github, context}))
|
console.log(script({github, context}))
|
||||||
```
|
```
|
||||||
|
|
||||||
_Note that the script path given to `require()` must be an **absolute path** in this case, hence using [`GITHUB_WORKSPACE`](https://docs.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables)._
|
|
||||||
|
|
||||||
And then export a function from your module:
|
And then export a function from your module:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
@@ -257,9 +256,6 @@ module.exports = ({github, context}) => {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also use async functions in this manner, as long as you `await` it in
|
|
||||||
the inline script.
|
|
||||||
|
|
||||||
Note that because you can't `require` things like the GitHub context or
|
Note that because you can't `require` things like the GitHub context or
|
||||||
Actions Toolkit libraries, you'll want to pass them as arguments to your
|
Actions Toolkit libraries, you'll want to pass them as arguments to your
|
||||||
external function.
|
external function.
|
||||||
@@ -268,6 +264,44 @@ Additionally, you'll want to use the [checkout
|
|||||||
action](https://github.com/actions/checkout) to make sure your script file is
|
action](https://github.com/actions/checkout) to make sure your script file is
|
||||||
available.
|
available.
|
||||||
|
|
||||||
|
### Run a separate file with an async function
|
||||||
|
|
||||||
|
You can also use async functions in this manner, as long as you `await` it in
|
||||||
|
the inline script.
|
||||||
|
|
||||||
|
In your workflow:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
on: push
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
echo-input:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/github-script@v4
|
||||||
|
env:
|
||||||
|
SHA: '${{env.parentSHA}}'
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const script = require('./path/to/script.js')
|
||||||
|
await script({github, context, core})
|
||||||
|
```
|
||||||
|
|
||||||
|
And then export an async function from your module:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
module.exports = async ({github, context, core}) => {
|
||||||
|
const {SHA} = process.env
|
||||||
|
const commit = await github.repos.getCommit({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
ref: `${SHA}`
|
||||||
|
})
|
||||||
|
core.exportVariable('author', commit.data.commit.author.email)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Use npm packages
|
### Use npm packages
|
||||||
|
|
||||||
Like importing your own files above, you can also use installed modules:
|
Like importing your own files above, you can also use installed modules:
|
||||||
@@ -286,10 +320,10 @@ jobs:
|
|||||||
- run: npm ci
|
- run: npm ci
|
||||||
# or one-off:
|
# or one-off:
|
||||||
- run: npm install execa
|
- run: npm install execa
|
||||||
- uses: actions/github-script@v3
|
- uses: actions/github-script@v4
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const execa = require(`${process.env.GITHUB_WORKSPACE}/node_modules/execa`)
|
const execa = require('execa')
|
||||||
|
|
||||||
const { stdout } = await execa('echo', ['hello', 'world'])
|
const { stdout } = await execa('echo', ['hello', 'world'])
|
||||||
|
|
||||||
@@ -307,7 +341,7 @@ jobs:
|
|||||||
echo-input:
|
echo-input:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v3
|
- uses: actions/github-script@v4
|
||||||
env:
|
env:
|
||||||
FIRST_NAME: Mona
|
FIRST_NAME: Mona
|
||||||
LAST_NAME: Octocat
|
LAST_NAME: Octocat
|
||||||
@@ -317,3 +351,32 @@ jobs:
|
|||||||
|
|
||||||
console.log(`Hello ${FIRST_NAME} ${LAST_NAME}`)
|
console.log(`Hello ${FIRST_NAME} ${LAST_NAME}`)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Using a separate GitHub token
|
||||||
|
|
||||||
|
The `GITHUB_TOKEN` used by default is scoped to the current repository, see [Authentication in a workflow](https://docs.github.com/actions/reference/authentication-in-a-workflow).
|
||||||
|
|
||||||
|
If you need access to a different repository or an API that the `GITHUB_TOKEN` doesn't have permissions to, you can provide your own [PAT](https://help.github.com/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) as a secret using the `github-token` input.
|
||||||
|
|
||||||
|
[Learn more about creating and using encrypted secrets](https://docs.github.com/actions/reference/encrypted-secrets)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [opened]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
apply-label:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/github-script@v4
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.MY_PAT }}
|
||||||
|
script: |
|
||||||
|
github.issues.addLabels({
|
||||||
|
issue_number: context.issue.number,
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
labels: ['Triage']
|
||||||
|
})
|
||||||
|
```
|
||||||
Vendored
+864
-93
File diff suppressed because it is too large.
Load diff
Generated
+3970
-6312
File diff suppressed because it is too large.
Load diff
+11
-10
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "github-script",
|
"name": "github-script",
|
||||||
"description": "A GitHub action for executing a simple script",
|
"description": "A GitHub action for executing a simple script",
|
||||||
"version": "3.1.1",
|
"version": "4.0.2",
|
||||||
"author": "GitHub",
|
"author": "GitHub",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
@@ -35,7 +35,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.2.6",
|
"@actions/core": "^1.2.7",
|
||||||
|
"@actions/exec": "^1.1.0",
|
||||||
"@actions/github": "^4.0.0",
|
"@actions/github": "^4.0.0",
|
||||||
"@actions/glob": "^0.1.1",
|
"@actions/glob": "^0.1.1",
|
||||||
"@actions/io": "^1.0.2",
|
"@actions/io": "^1.0.2",
|
||||||
@@ -44,17 +45,17 @@
|
|||||||
"@octokit/plugin-rest-endpoint-methods": "4.2.1"
|
"@octokit/plugin-rest-endpoint-methods": "4.2.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^26.0.10",
|
"@types/jest": "^26.0.24",
|
||||||
"@typescript-eslint/eslint-plugin": "^3.9.1",
|
"@typescript-eslint/eslint-plugin": "^3.10.1",
|
||||||
"@typescript-eslint/parser": "^3.9.1",
|
"@typescript-eslint/parser": "^3.10.1",
|
||||||
"@vercel/ncc": "^0.23.0",
|
"@vercel/ncc": "^0.23.0",
|
||||||
"eslint": "^7.7.0",
|
"eslint": "^7.32.0",
|
||||||
"eslint-config-prettier": "^6.11.0",
|
"eslint-config-prettier": "^6.15.0",
|
||||||
"husky": "^4.2.5",
|
"husky": "^4.2.5",
|
||||||
"jest": "^26.4.1",
|
"jest": "^26.6.3",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"prettier": "^2.0.5",
|
"prettier": "^2.0.5",
|
||||||
"ts-jest": "^26.2.0",
|
"ts-jest": "^26.5.6",
|
||||||
"typescript": "^4.0.2"
|
"typescript": "^4.3.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import * as core from '@actions/core'
|
import * as core from '@actions/core'
|
||||||
|
import * as exec from '@actions/exec'
|
||||||
import {Context} from '@actions/github/lib/context'
|
import {Context} from '@actions/github/lib/context'
|
||||||
import {GitHub} from '@actions/github/lib/utils'
|
import {GitHub} from '@actions/github/lib/utils'
|
||||||
import * as glob from '@actions/glob'
|
import * as glob from '@actions/glob'
|
||||||
@@ -10,9 +11,11 @@ type AsyncFunctionArguments = {
|
|||||||
context: Context
|
context: Context
|
||||||
core: typeof core
|
core: typeof core
|
||||||
github: InstanceType<typeof GitHub>
|
github: InstanceType<typeof GitHub>
|
||||||
|
exec: typeof exec
|
||||||
glob: typeof glob
|
glob: typeof glob
|
||||||
io: typeof io
|
io: typeof io
|
||||||
require: NodeRequire
|
require: NodeRequire
|
||||||
|
__original_require__: NodeRequire
|
||||||
}
|
}
|
||||||
|
|
||||||
export function callAsyncFunction<T>(
|
export function callAsyncFunction<T>(
|
||||||
|
|||||||
+12
-1
@@ -1,8 +1,10 @@
|
|||||||
import * as core from '@actions/core'
|
import * as core from '@actions/core'
|
||||||
|
import * as exec from '@actions/exec'
|
||||||
import {context, getOctokit} from '@actions/github'
|
import {context, getOctokit} from '@actions/github'
|
||||||
import * as glob from '@actions/glob'
|
import * as glob from '@actions/glob'
|
||||||
import * as io from '@actions/io'
|
import * as io from '@actions/io'
|
||||||
import {callAsyncFunction} from './async-function'
|
import {callAsyncFunction} from './async-function'
|
||||||
|
import {wrapRequire} from './wrap-require'
|
||||||
|
|
||||||
process.on('unhandledRejection', handleError)
|
process.on('unhandledRejection', handleError)
|
||||||
main().catch(handleError)
|
main().catch(handleError)
|
||||||
@@ -29,7 +31,16 @@ async function main(): Promise<void> {
|
|||||||
|
|
||||||
// Using property/value shorthand on `require` (e.g. `{require}`) causes compilation errors.
|
// Using property/value shorthand on `require` (e.g. `{require}`) causes compilation errors.
|
||||||
const result = await callAsyncFunction(
|
const result = await callAsyncFunction(
|
||||||
{require: require, github, context, core, glob, io},
|
{
|
||||||
|
require: wrapRequire,
|
||||||
|
__original_require__: __non_webpack_require__,
|
||||||
|
github,
|
||||||
|
context,
|
||||||
|
core,
|
||||||
|
exec,
|
||||||
|
glob,
|
||||||
|
io
|
||||||
|
},
|
||||||
script
|
script
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
import * as path from 'path'
|
||||||
|
|
||||||
|
export const wrapRequire = new Proxy(__non_webpack_require__, {
|
||||||
|
apply: (target, thisArg, [moduleID]) => {
|
||||||
|
if (moduleID.startsWith('.')) {
|
||||||
|
moduleID = path.resolve(moduleID)
|
||||||
|
return target.apply(thisArg, [moduleID])
|
||||||
|
}
|
||||||
|
|
||||||
|
const modulePath = target.resolve.apply(thisArg, [
|
||||||
|
moduleID,
|
||||||
|
{
|
||||||
|
// Webpack does not have an escape hatch for getting the actual
|
||||||
|
// module, other than `eval`.
|
||||||
|
paths: [process.cwd()]
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
return target.apply(thisArg, [modulePath])
|
||||||
|
},
|
||||||
|
|
||||||
|
get: (target, prop, receiver) => {
|
||||||
|
Reflect.get(target, prop, receiver)
|
||||||
|
}
|
||||||
|
})
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
declare const __non_webpack_require__: NodeRequire
|
||||||
Reference in new issue
Block a user