Compare commits

..
38 Commits
Author SHA1 Message Date
Josh Gross 60a0d83039 Merge pull request #440 from actions/joshmgross/v7.0.1
Update version to 7.0.1
2023-11-17 17:20:07 -05:00
Josh Gross b7fb2001b4 Update version to 7.0.1 2023-11-17 14:15:20 -05:00
Josh Gross 12e22ed06b Merge pull request #439 from actions/joshmgross/avoid-setting-base-url
Avoid setting `baseUrl` to undefined when input is not provided
2023-11-17 14:13:03 -05:00
Josh Gross d319f8f5b5 Avoid setting baseUrl to undefined when input is not provided 2023-11-17 11:59:30 -05:00
Josh Gross e69ef5462f Merge pull request #425 from actions/joshmgross/node-20
Update dependencies and use Node 20
2023-11-13 13:02:38 -05:00
Josh Gross ee0914b839 Update licenses 2023-11-09 10:06:25 -05:00
Josh Gross d6fc56f33b Use @types/node for Node 20 2023-11-08 11:16:50 -05:00
Josh Gross 384d6cf581 Fix quotations in tests 2023-11-08 10:07:35 -05:00
Josh Gross 84724927e3 Only validate GraphQL previews 2023-11-08 10:03:49 -05:00
Josh Gross 84903f5182 Remove node-fetch from type 2023-11-08 09:54:09 -05:00
Josh Gross 5349cf9965 Merge branch 'main' into joshmgross/node-20 2023-11-08 09:45:02 -05:00
Josh Gross ecae9eb535 Merge pull request #402 from typed-actions/export-types
Expose async-function argument type
2023-11-08 09:34:16 -05:00
Viktorlo 044ebbb945 Merge branch 'main' into export-types 2023-11-08 11:14:47 +01:00
Josh Gross 6b5d3eac1f Merge pull request #429 from robandpdx/add-base-url-option
Add base-url option
2023-10-31 14:33:41 -04:00
Rob Anderson 5940a76378 add example to description of base-url parameter 2023-10-23 17:37:49 -06:00
Rob AndersonandJosh Gross ef8023aa4a Update action.yml
Co-authored-by: Josh Gross <joshmgross@github.com>
2023-10-23 19:35:20 -04:00
Rob Anderson e8957ff5ee generate dist changes for addition of base-url 2023-10-23 16:35:17 -06:00
Rob Anderson ea121b86f9 add base-url option 2023-10-20 10:16:28 -06:00
Josh Gross 22dcf8ad68 Add shell to run step 2023-10-12 13:14:48 -04:00
Josh Gross a903cf2d66 Add install deps action to reuse between workflows 2023-10-12 13:11:41 -04:00
Josh GrossandMartin Costello 30d8f852ac Fix version number in breaking changes section
Co-authored-by: Martin Costello <martin@martincostello.com>
2023-10-12 13:06:36 -04:00
Josh Gross 999c7fb9fe Use setup-node in licensed workflow 2023-10-11 16:21:07 -04:00
Josh Gross 47bc917394 Specify Node 20 in workflows and examples 2023-10-11 16:18:35 -04:00
Josh Gross 84ab08fe8b Update dependencies and use Node 20 2023-10-11 16:11:59 -04:00
Josh Gross 1f16022c75 Merge pull request #422 from actions/joshmgross/update-codeowners
Update CODEOWNERS to the Launch team
2023-10-02 11:55:52 -04:00
Josh Gross 5d8f827854 Update CODEOWNERS to the Launch team 2023-10-02 11:53:14 -04:00
Viktor Lott 21446ed76b Remove alternative setup documentation 2023-08-18 09:30:09 +02:00
Viktorlo c857fcb22b Update alternative-setup.md 2023-07-28 11:34:17 +02:00
Viktorlo ba13a89bc9 Update README.md 2023-07-28 11:30:13 +02:00
Viktor Lott 56bdc6c318 Expose async-function argument type
We are exposing the async-function argument type for jsDoc
type declaration support. This means that we now could do:
"npm i -D @types/github-script@github:actions/github-script"
and the add:
"@param {import('@types/github-script').AsyncFunctionArguments}
AsyncFunctionArguments".

This could obviously be done in other ways too, like using
"@typed-actions/github-script" instead. But it seems better
to use the actual source repository instead of a third-party
library to import the type declaration.
2023-07-03 13:56:46 +02:00
Josh Gross 6f00a0b667 Merge pull request #383 from actions/joshmgross/templates
Add more issue templates
2023-05-05 16:26:55 -04:00
Josh Gross 3a27f0b193 Add more issue templates 2023-05-04 18:17:04 -04:00
Josh Gross 060d68304c Merge pull request #285 from navarroaxel/patch-1
Fix typo in README
2023-04-07 18:13:09 -04:00
Josh Gross d324628d3c Merge branch 'main' into patch-1 2023-04-07 18:04:40 -04:00
Josh Gross 6dcbc7ebb3 Merge pull request #364 from actions/joshmgross/remove-path-filters
Remove path filters from check-dist workflow
2023-04-07 18:04:15 -04:00
Josh Gross 9e54a4c141 Remove path filters from check-dist workflow 2023-04-07 14:45:58 -04:00
Josh Gross 29423367f0 Merge branch 'main' into patch-1 2023-04-07 11:49:55 -04:00
Axel Navarro c141a9230e Fix typo in README 2023-04-05 10:11:07 -03:00
43 changed files with 32259 additions and 10080 deletions

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:
+8
View File
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Ask a question or provide feedback about using this action
about: For general Q&A and feedback, see the Discussions tab.
url: https://github.com/actions/github-script/discussions
- name: Ask a question or provide feedback about GitHub Actions
about: Please check out the GitHub community forum for discussions about GitHub Actions
url: https://github.com/orgs/community/discussions/categories/actions
@@ -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 -12
View File
@@ -10,11 +10,7 @@ on:
push: push:
branches: branches:
- main - main
paths-ignore:
- '**.md'
pull_request: pull_request:
paths-ignore:
- '**.md'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@@ -24,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
+83 -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: ./
@@ -268,3 +248,78 @@ jobs:
done <<< "$tests" done <<< "$tests"
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
test-base-url:
name: 'Integration test: base-url option'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/install-dependencies
- id: base-url-default
name: API URL with base-url not set
uses: ./
with:
script: |
const endpoint = github.request.endpoint
return endpoint({}).url
result-encoding: string
- id: base-url-default-graphql
name: GraphQL URL with base-url not set
uses: ./
with:
script: |
const endpoint = github.request.endpoint
return endpoint({url: "/graphql"}).url
result-encoding: string
- id: base-url-set
name: API URL with base-url set
uses: ./
with:
base-url: https://my.github-enterprise-server.com/api/v3
script: |
const endpoint = github.request.endpoint
return endpoint({}).url
result-encoding: string
- id: base-url-set-graphql
name: GraphQL URL with base-url set
uses: ./
with:
base-url: https://my.github-enterprise-server.com/api/v3
script: |
const endpoint = github.request.endpoint
return endpoint({url: "/graphql"}).url
result-encoding: string
- run: |
echo "- Validating API URL default"
expected="https://api.github.com/"
actual="${{steps.base-url-default.outputs.result}}"
if [[ "$expected" != "$actual" ]]; then
echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual"
exit 1
fi
echo "- Validating GraphQL URL default"
expected="https://api.github.com/graphql"
actual="${{steps.base-url-default-graphql.outputs.result}}"
if [[ "$expected" != "$actual" ]]; then
echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual"
exit 1
fi
echo "- Validating base-url set to a value"
expected="https://my.github-enterprise-server.com/api/v3/"
actual="${{steps.base-url-set.outputs.result}}"
if [[ "$expected" != "$actual" ]]; then
echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual"
exit 1
fi
echo "- Validating GraphQL URL with base-url set to a value"
expected="https://my.github-enterprise-server.com/api/v3/graphql"
actual="${{steps.base-url-set-graphql.outputs.result}}"
if [[ "$expected" != "$actual" ]]; then
echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual"
exit 1
fi
+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
+1 -1
View File
@@ -1 +1 @@
* @actions/actions-experience * @actions/actions-launch
+47 -22
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
@@ -225,7 +232,7 @@ jobs:
repo: context.repo.repo, repo: context.repo.repo,
body: `**Welcome**, new contributor! body: `**Welcome**, new contributor!
Please make sure you're read our [contributing guide](CONTRIBUTING.md) and we look forward to reviewing your Pull request shortly ✨` Please make sure you've read our [contributing guide](CONTRIBUTING.md) and we look forward to reviewing your Pull request shortly ✨`
}) })
``` ```
@@ -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')
@@ -419,6 +426,24 @@ jobs:
await printStuff() await printStuff()
``` ```
### Use scripts with jsDoc support
If you want type support for your scripts, you could use the command below to install the
`github-script` type declaration.
```sh
$ npm i -D @types/github-script@github:actions/github-script
```
And then add the `jsDoc` declaration to your script like this:
```js
// @ts-check
/** @param {import('@types/github-script').AsyncFunctionArguments} AsyncFunctionArguments */
export default async ({ core, context }) => {
core.debug("Running something at the moment");
return context.actor;
};
```
### Use env as input ### Use env as input
You can set env vars to use them in your script: You can set env vars to use them in your script:
@@ -430,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
@@ -458,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: |
+5 -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
@@ -29,9 +29,12 @@ inputs:
retry-exempt-status-codes: retry-exempt-status-codes:
description: A comma separated list of status codes that will NOT be retried e.g. "400,500". No effect unless `retries` is set description: A comma separated list of status codes that will NOT be retried e.g. "400,500". No effect unless `retries` is set
default: 400,401,403,404,422 # from https://github.com/octokit/plugin-retry.js/blob/9a2443746c350b3beedec35cf26e197ea318a261/src/index.ts#L14 default: 400,401,403,404,422 # from https://github.com/octokit/plugin-retry.js/blob/9a2443746c350b3beedec35cf26e197ea318a261/src/index.ts#L14
base-url:
description: An optional GitHub REST API URL to connect to a different GitHub instance. For example, https://my.github-enterprise-server.com/api/v3
required: false
outputs: 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
+26108 -5823
View File
File diff suppressed because it is too large. Load diff
+5925 -4150
View File
File diff suppressed because it is too large. Load diff
+37 -29
View File
@@ -1,13 +1,18 @@
{ {
"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.1",
"author": "GitHub", "author": "GitHub",
"license": "MIT", "license": "MIT",
"main": "dist/index.js", "main": "dist/index.js",
"types": "types/async-function.d.ts",
"private": true, "private": true,
"engines": {
"node": ">=20.0.0 <21.0.0"
},
"scripts": { "scripts": {
"build": "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",
"format:check": "prettier --check src __test__", "format:check": "prettier --check src __test__",
"format:write": "prettier --write src __test__", "format:write": "prettier --write src __test__",
"lint": "eslint src __test__", "lint": "eslint src __test__",
@@ -20,40 +25,43 @@
"jest": { "jest": {
"preset": "ts-jest", "preset": "ts-jest",
"testEnvironment": "node", "testEnvironment": "node",
"globals": { "transform": {
"ts-jest": { "^.+\\.ts$": [
"diagnostics": { "ts-jest",
"ignoreCodes": [ {
"151001" "diagnostics": {
] "ignoreCodes": [
"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"
} }
} }
+1 -3
View File
@@ -4,18 +4,16 @@ 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
type AsyncFunctionArguments = { export declare type AsyncFunctionArguments = {
context: Context context: Context
core: typeof core core: typeof core
github: InstanceType<typeof GitHub> github: InstanceType<typeof GitHub>
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
} }
+9 -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'
@@ -18,6 +17,7 @@ main().catch(handleError)
type Options = { type Options = {
log?: Console log?: Console
userAgent?: string userAgent?: string
baseUrl?: string
previews?: string[] previews?: string[]
retry?: RetryOptions retry?: RetryOptions
request?: RequestRequestOptions request?: RequestRequestOptions
@@ -28,6 +28,7 @@ async function main(): Promise<void> {
const debug = core.getBooleanInput('debug') const debug = core.getBooleanInput('debug')
const userAgent = core.getInput('user-agent') const userAgent = core.getInput('user-agent')
const previews = core.getInput('previews') const previews = core.getInput('previews')
const baseUrl = core.getInput('base-url')
const retries = parseInt(core.getInput('retries')) const retries = parseInt(core.getInput('retries'))
const exemptStatusCodes = parseNumberArray( const exemptStatusCodes = parseNumberArray(
core.getInput('retry-exempt-status-codes') core.getInput('retry-exempt-status-codes')
@@ -46,6 +47,12 @@ async function main(): Promise<void> {
request: requestOpts request: requestOpts
} }
// Setting `baseUrl` to undefined will prevent the default value from being used
// https://github.com/actions/github-script/issues/436
if (baseUrl) {
opts.baseUrl = baseUrl
}
const github = getOctokit(token, opts, retry, requestLog) const github = getOctokit(token, opts, retry, requestLog)
const script = core.getInput('script', {required: true}) const script = core.getInput('script', {required: true})
@@ -59,8 +66,7 @@ async function main(): Promise<void> {
core, core,
exec, exec,
glob, glob,
io, io
fetch
}, },
script script
) )
+18
View File
@@ -0,0 +1,18 @@
/// <reference types="node" />
import * as core from '@actions/core';
import * as exec from '@actions/exec';
import { Context } from '@actions/github/lib/context';
import { GitHub } from '@actions/github/lib/utils';
import * as glob from '@actions/glob';
import * as io from '@actions/io';
export declare type AsyncFunctionArguments = {
context: Context;
core: typeof core;
github: InstanceType<typeof GitHub>;
exec: typeof exec;
glob: typeof glob;
io: typeof io;
require: NodeRequire;
__original_require__: NodeRequire;
};
export declare function callAsyncFunction<T>(args: AsyncFunctionArguments, source: string): Promise<T>;