Merge pull request #425 from actions/joshmgross/node-20

Update dependencies and use Node 20
This commit is contained in:
Josh Gross authored and GitHub committed 2023-11-13 13:02:38 -05:00
commit e69ef5462f
41 files changed
+32064 -10021

No files matched your search

+1 -1
View File
@@ -5,7 +5,7 @@ extends:
- eslint:recommended - eslint:recommended
- plugin:@typescript-eslint/eslint-recommended - plugin:@typescript-eslint/eslint-recommended
- plugin:@typescript-eslint/recommended - plugin:@typescript-eslint/recommended
- prettier/@typescript-eslint - prettier
parserOptions: parserOptions:
project: ['tsconfig.eslint.json'] project: ['tsconfig.eslint.json']
rules: rules:
@@ -0,0 +1,12 @@
name: 'Install dependencies'
description: 'Set up node and install dependencies'
runs:
using: 'composite'
steps:
- uses: actions/setup-node@v3
with:
node-version: '20.x'
cache: npm
- run: npm ci
shell: bash
+1 -8
View File
@@ -20,14 +20,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Set Node.js 16.x - uses: ./.github/actions/install-dependencies
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: npm ci
- name: Rebuild the dist/ directory - name: Rebuild the dist/ directory
run: npm run build run: npm run build
+1 -5
View File
@@ -11,10 +11,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/setup-node@v3 - uses: ./.github/actions/install-dependencies
with:
node-version: 16
cache: npm
- run: npm ci
- run: npm run style:check - run: npm run style:check
- run: npm test - run: npm test
+8 -28
View File
@@ -50,12 +50,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/cache@v3 - uses: ./.github/actions/install-dependencies
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- id: npm-require - id: npm-require
uses: ./ uses: ./
with: with:
@@ -71,23 +66,18 @@ jobs:
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
test-previews: test-previews:
name: 'Integration test: previews option' name: 'Integration test: GraphQL previews option'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/cache@v3 - uses: ./.github/actions/install-dependencies
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- id: previews-default - id: previews-default
name: Default previews not set name: Default previews not set
uses: ./ uses: ./
with: with:
script: | script: |
const endpoint = github.request.endpoint const endpoint = github.request.endpoint
return endpoint({}).headers.accept return endpoint({url: "/graphql"}).headers.accept
result-encoding: string result-encoding: string
- id: previews-set-single - id: previews-set-single
name: Previews set to a single value name: Previews set to a single value
@@ -96,7 +86,7 @@ jobs:
previews: foo previews: foo
script: | script: |
const endpoint = github.request.endpoint const endpoint = github.request.endpoint
return endpoint({}).headers.accept return endpoint({url: "/graphql"}).headers.accept
result-encoding: string result-encoding: string
- id: previews-set-multiple - id: previews-set-multiple
name: Previews set to comma-separated list name: Previews set to comma-separated list
@@ -105,7 +95,7 @@ jobs:
previews: foo,bar,baz previews: foo,bar,baz
script: | script: |
const endpoint = github.request.endpoint const endpoint = github.request.endpoint
return endpoint({}).headers.accept return endpoint({url: "/graphql"}).headers.accept
result-encoding: string result-encoding: string
- run: | - run: |
echo "- Validating previews default" echo "- Validating previews default"
@@ -133,12 +123,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/cache@v3 - uses: ./.github/actions/install-dependencies
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- id: user-agent-default - id: user-agent-default
name: Default user-agent not set name: Default user-agent not set
uses: ./ uses: ./
@@ -195,12 +180,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/cache@v3 - uses: ./.github/actions/install-dependencies
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- id: debug-default - id: debug-default
name: Default debug not set name: Default debug not set
uses: ./ uses: ./
+1 -1
View File
@@ -20,5 +20,5 @@ jobs:
- uses: jonabc/setup-licensed@82c5f4d19e8968efa74a25b132922382c2671fe2 - uses: jonabc/setup-licensed@82c5f4d19e8968efa74a25b132922382c2671fe2
with: with:
version: '3.x' version: '3.x'
- run: npm ci - uses: ./.github/actions/install-dependencies
- run: licensed status - run: licensed status
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
engine-strict=true
+28 -21
View File
@@ -18,7 +18,6 @@ The following arguments will be provided:
- `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 - `exec` A reference to the [@actions/exec](https://github.com/actions/toolkit/tree/main/packages/exec) package
- `fetch` A reference to the [node-fetch](https://github.com/node-fetch/node-fetch) package
- `require` A proxy wrapper around the normal Node.js `require` to enable - `require` A proxy wrapper around the normal Node.js `require` to enable
requiring relative paths (relative to the current working directory) and requiring relative paths (relative to the current working directory) and
requiring npm packages installed in the current working directory. If for requiring npm packages installed in the current working directory. If for
@@ -34,13 +33,21 @@ documentation.
## Breaking Changes ## Breaking Changes
### Breaking changes in V6 ### V7
Version 6 of this action updated the runtime to Node 16 - https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#example-using-nodejs-v16 Version 7 of this action updated the runtime to Node 20 - https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-javascript-actions
All scripts are now run with Node 20 instead of Node 16 and are affected by any breaking changes between Node 16 and 20
The `previews` input now only applies to GraphQL API calls as REST API previews are no longer necessary - https://github.blog/changelog/2021-10-14-rest-api-preview-promotions/.
### V6
Version 6 of this action updated the runtime to Node 16 - https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-javascript-actions
All scripts are now run with Node 16 instead of Node 12 and are affected by any breaking changes between Node 12 and 16. All scripts are now run with Node 16 instead of Node 12 and are affected by any breaking changes between Node 12 and 16.
### Breaking changes in V5 ### V5
Version 5 of this action includes the version 5 of `@actions/github` and `@octokit/plugin-rest-endpoint-methods`. As part of this update, the Octokit context available via `github` no longer has REST methods directly. These methods are available via `github.rest.*` - https://github.com/octokit/plugin-rest-endpoint-methods.js/releases/tag/v5.0.0 Version 5 of this action includes the version 5 of `@actions/github` and `@octokit/plugin-rest-endpoint-methods`. As part of this update, the Octokit context available via `github` no longer has REST methods directly. These methods are available via `github.rest.*` - https://github.com/octokit/plugin-rest-endpoint-methods.js/releases/tag/v5.0.0
@@ -58,7 +65,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@v6 - uses: actions/github-script@v7
id: set-result id: set-result
with: with:
script: return "Hello!" script: return "Hello!"
@@ -77,7 +84,7 @@ 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@v6 - uses: actions/github-script@v7
id: my-script id: my-script
with: with:
result-encoding: string result-encoding: string
@@ -89,7 +96,7 @@ output of a github-script step. For some workflows, string encoding is preferred
By default, requests made with the `github` instance will not be retried. You can configure this with the `retries` option: By default, requests made with the `github` instance will not be retried. You can configure this with the `retries` option:
```yaml ```yaml
- uses: actions/github-script@v6 - uses: actions/github-script@v7
id: my-script id: my-script
with: with:
result-encoding: string result-encoding: string
@@ -107,7 +114,7 @@ In this example, request failures from `github.rest.issues.get()` will be retrie
You can also configure which status codes should be exempt from retries via the `retry-exempt-status-codes` option: You can also configure which status codes should be exempt from retries via the `retry-exempt-status-codes` option:
```yaml ```yaml
- uses: actions/github-script@v6 - uses: actions/github-script@v7
id: my-script id: my-script
with: with:
result-encoding: string result-encoding: string
@@ -136,7 +143,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@v6 uses: actions/github-script@v7
with: with:
script: console.log(context) script: console.log(context)
``` ```
@@ -152,7 +159,7 @@ jobs:
comment: comment:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v6 - uses: actions/github-script@v7
with: with:
script: | script: |
github.rest.issues.createComment({ github.rest.issues.createComment({
@@ -174,7 +181,7 @@ jobs:
apply-label: apply-label:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v6 - uses: actions/github-script@v7
with: with:
script: | script: |
github.rest.issues.addLabels({ github.rest.issues.addLabels({
@@ -196,7 +203,7 @@ jobs:
welcome: welcome:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v6 - uses: actions/github-script@v7
with: with:
script: | script: |
// Get a list of all issues created by the PR opener // Get a list of all issues created by the PR opener
@@ -241,7 +248,7 @@ jobs:
diff: diff:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v6 - uses: actions/github-script@v7
with: with:
script: | script: |
const diff_url = context.payload.pull_request.diff_url const diff_url = context.payload.pull_request.diff_url
@@ -265,7 +272,7 @@ jobs:
list-issues: list-issues:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v6 - uses: actions/github-script@v7
with: with:
script: | script: |
const query = `query($owner:String!, $name:String!, $label:String!) { const query = `query($owner:String!, $name:String!, $label:String!) {
@@ -299,7 +306,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/github-script@v6 - uses: actions/github-script@v7
with: with:
script: | script: |
const script = require('./path/to/script.js') const script = require('./path/to/script.js')
@@ -337,7 +344,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/github-script@v6 - uses: actions/github-script@v7
env: env:
SHA: '${{env.parentSHA}}' SHA: '${{env.parentSHA}}'
with: with:
@@ -377,11 +384,11 @@ jobs:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/setup-node@v3 - uses: actions/setup-node@v3
with: with:
node-version: 16 node-version: '20.x'
- run: npm ci - run: npm ci
# or one-off: # or one-off:
- run: npm install execa - run: npm install execa
- uses: actions/github-script@v6 - uses: actions/github-script@v7
with: with:
script: | script: |
const execa = require('execa') const execa = require('execa')
@@ -411,7 +418,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/github-script@v6 - uses: actions/github-script@v7
with: with:
script: | script: |
const { default: printStuff } = await import('${{ github.workspace }}/src/print-stuff.js') const { default: printStuff } = await import('${{ github.workspace }}/src/print-stuff.js')
@@ -448,7 +455,7 @@ jobs:
echo-input: echo-input:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v6 - uses: actions/github-script@v7
env: env:
FIRST_NAME: Mona FIRST_NAME: Mona
LAST_NAME: Octocat LAST_NAME: Octocat
@@ -476,7 +483,7 @@ jobs:
apply-label: apply-label:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v6 - uses: actions/github-script@v7
with: with:
github-token: ${{ secrets.MY_PAT }} github-token: ${{ secrets.MY_PAT }}
script: | script: |
+2 -2
View File
@@ -19,7 +19,7 @@ inputs:
description: An optional user-agent string description: An optional user-agent string
default: actions/github-script default: actions/github-script
previews: previews:
description: A comma-separated list of API previews to accept description: A comma-separated list of GraphQL API previews to accept
result-encoding: result-encoding:
description: Either "string" or "json" (default "json")—how the result will be encoded description: Either "string" or "json" (default "json")—how the result will be encoded
default: json default: json
@@ -36,5 +36,5 @@ outputs:
result: result:
description: The return value of the script, stringified with `JSON.stringify` description: The return value of the script, stringified with `JSON.stringify`
runs: runs:
using: node16 using: node20
main: dist/index.js main: dist/index.js
+26056 -5777
View File
File diff suppressed because it is too large. Load diff
+5923 -4148
View File
File diff suppressed because it is too large. Load diff
+29 -23
View File
@@ -1,12 +1,15 @@
{ {
"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": "6.4.0", "version": "7.0.0",
"author": "GitHub", "author": "GitHub",
"license": "MIT", "license": "MIT",
"main": "dist/index.js", "main": "dist/index.js",
"types": "types/async-function.d.ts", "types": "types/async-function.d.ts",
"private": true, "private": true,
"engines": {
"node": ">=20.0.0 <21.0.0"
},
"scripts": { "scripts": {
"build": "npm run build:types && ncc build src/main.ts", "build": "npm run build:types && ncc build src/main.ts",
"build:types": "tsc src/async-function.ts -t es5 --declaration --allowJs --emitDeclarationOnly --outDir types", "build:types": "tsc src/async-function.ts -t es5 --declaration --allowJs --emitDeclarationOnly --outDir types",
@@ -22,40 +25,43 @@
"jest": { "jest": {
"preset": "ts-jest", "preset": "ts-jest",
"testEnvironment": "node", "testEnvironment": "node",
"globals": { "transform": {
"ts-jest": { "^.+\\.ts$": [
"ts-jest",
{
"diagnostics": { "diagnostics": {
"ignoreCodes": [ "ignoreCodes": [
"151001" "151001"
] ]
} }
} }
]
} }
}, },
"dependencies": { "dependencies": {
"@actions/core": "^1.10.0", "@actions/core": "^1.10.1",
"@actions/exec": "^1.1.0", "@actions/exec": "^1.1.1",
"@actions/github": "^5.0.0", "@actions/github": "^6.0.0",
"@actions/glob": "^0.3.0", "@actions/glob": "^0.4.0",
"@actions/io": "^1.1.1", "@actions/io": "^1.1.3",
"@octokit/core": "^3.5.1", "@octokit/core": "^5.0.1",
"@octokit/plugin-request-log": "^1.0.4", "@octokit/plugin-request-log": "^4.0.0",
"@octokit/plugin-retry": "^3.0.9", "@octokit/plugin-retry": "^6.0.1",
"node-fetch": "^2.6.7" "@types/node": "^20.9.0"
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^27.0.2", "@types/jest": "^29.5.5",
"@types/node-fetch": "^2.6.2", "@typescript-eslint/eslint-plugin": "^6.7.5",
"@typescript-eslint/eslint-plugin": "^3.10.1", "@typescript-eslint/parser": "^6.7.5",
"@typescript-eslint/parser": "^3.10.1", "@vercel/ncc": "^0.38.0",
"@vercel/ncc": "^0.36.0", "eslint": "^8.51.0",
"eslint": "^7.32.0", "eslint-config-prettier": "^9.0.0",
"eslint-config-prettier": "^6.15.0", "eslint-plugin-prettier": "^5.0.1",
"husky": "^7.0.0", "husky": "^7.0.0",
"jest": "^27.2.5", "jest": "^29.7.0",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"prettier": "^2.0.5", "prettier": "^3.0.3",
"ts-jest": "^27.0.5", "ts-jest": "^29.1.1",
"typescript": "^4.3.5" "typescript": "^5.2.2"
} }
} }
-2
View File
@@ -4,7 +4,6 @@ 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'
import * as io from '@actions/io' import * as io from '@actions/io'
import fetch from 'node-fetch'
const AsyncFunction = Object.getPrototypeOf(async () => null).constructor const AsyncFunction = Object.getPrototypeOf(async () => null).constructor
@@ -15,7 +14,6 @@ export declare type AsyncFunctionArguments = {
exec: typeof exec exec: typeof exec
glob: typeof glob glob: typeof glob
io: typeof io io: typeof io
fetch: typeof fetch
require: NodeRequire require: NodeRequire
__original_require__: NodeRequire __original_require__: NodeRequire
} }
+1 -3
View File
@@ -7,7 +7,6 @@ import * as io from '@actions/io'
import {requestLog} from '@octokit/plugin-request-log' import {requestLog} from '@octokit/plugin-request-log'
import {retry} from '@octokit/plugin-retry' import {retry} from '@octokit/plugin-retry'
import {RequestRequestOptions} from '@octokit/types' import {RequestRequestOptions} from '@octokit/types'
import fetch from 'node-fetch'
import {callAsyncFunction} from './async-function' import {callAsyncFunction} from './async-function'
import {RetryOptions, getRetryOptions, parseNumberArray} from './retry-options' import {RetryOptions, getRetryOptions, parseNumberArray} from './retry-options'
import {wrapRequire} from './wrap-require' import {wrapRequire} from './wrap-require'
@@ -62,8 +61,7 @@ async function main(): Promise<void> {
core, core,
exec, exec,
glob, glob,
io, io
fetch
}, },
script script
) )
-2
View File
@@ -5,7 +5,6 @@ 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';
import * as io from '@actions/io'; import * as io from '@actions/io';
import fetch from 'node-fetch';
export declare type AsyncFunctionArguments = { export declare type AsyncFunctionArguments = {
context: Context; context: Context;
core: typeof core; core: typeof core;
@@ -13,7 +12,6 @@ export declare type AsyncFunctionArguments = {
exec: typeof exec; exec: typeof exec;
glob: typeof glob; glob: typeof glob;
io: typeof io; io: typeof io;
fetch: typeof fetch;
require: NodeRequire; require: NodeRequire;
__original_require__: NodeRequire; __original_require__: NodeRequire;
}; };