Compare commits

..
Author SHA1 Message Date
dependabot[bot] 5acb9949a7 Bump husky from 9.1.1 to 9.1.7
Bumps [husky](https://github.com/typicode/husky) from 9.1.1 to 9.1.7.
- [Release notes](https://github.com/typicode/husky/releases)
- [Commits](https://github.com/typicode/husky/compare/v9.1.1...v9.1.7)

---
updated-dependencies:
- dependency-name: husky
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-28 21:37:44 +00:00
Josh Gross c94e1c45ff Merge pull request #472 from nschonni/setup-dependabot
chore: Add Dependabot for NPM and Actions
2025-01-28 16:36:48 -05:00
Josh Gross 3e8cf0fede Merge branch 'main' into setup-dependabot 2025-01-28 16:35:38 -05:00
Josh Gross d70566966b Merge pull request #478 from timotk/patch-1
Specify that the used script is JavaScript
2025-01-17 15:31:49 -05:00
Josh Gross ec12a47a4a Merge branch 'main' into patch-1 2025-01-17 15:14:36 -05:00
Josh Gross ac452803c9 Merge pull request #515 from actions/joshmgross/npm-audit-fix
Update dependencies with `npm audit fix`
2025-01-17 15:06:43 -05:00
Josh Gross 1acfa1ca49 Merge branch 'main' into joshmgross/npm-audit-fix 2025-01-17 15:03:08 -05:00
Josh Gross c6fc059534 Merge pull request #514 from actions/joshmgross/update-package-name
Clear up package name confusion
2025-01-17 15:00:06 -05:00
Josh Gross 766f5ddf0e Update licenses 2025-01-17 14:58:40 -05:00
Josh Gross 5e738b47b5 Update dependencies with npm audit fix 2025-01-17 14:56:43 -05:00
Josh Gross 2f5a0ceb1a Update integration test for expected package name 2025-01-17 14:44:04 -05:00
Josh Gross 7875aed44f Clear up package name confusion 2025-01-17 14:37:40 -05:00
Josh Gross 2bcb242a0a Merge pull request #512 from actions/joshmgross/upload-artifact-update
Update usage of `actions/upload-artifact`
2025-01-17 13:48:42 -05:00
Josh Gross a32a57a185 Update usage of actions/upload-artifact 2025-01-16 15:53:49 -05:00
Josh Gross 4020e461ac Merge pull request #497 from actions/joshmgross/fix-status-badges
Fix workflow status badges
2024-11-04 10:31:56 -05:00
Josh Gross ec3a5c4c4c Fix workflow status badges 2024-11-01 18:11:15 -04:00
Joel Ambass 660ec11d82 Merge pull request #486 from actions/Jcambass-patch-1
Upgrade IA Publish
2024-09-17 08:47:55 +02:00
Joel Ambass c0ceea4835 Upgrade IA Publish 2024-09-16 17:19:19 +02:00
Joel Ambass 58d7008c60 Merge pull request #485 from actions/Jcambass-patch-1
Add workflow file for publishing releases to immutable action package
2024-09-13 16:53:23 +02:00
Joel Ambass b9f8f75f36 Add workflow file for publishing releases to immutable action package
This workflow file publishes new action releases to the immutable action package of the same name as this repo.

This is part of the Immutable Actions project which is not yet fully released to the public. First party actions like this one are part of our initial testing of this feature.
2024-09-13 13:35:58 +02:00
Josh Gross 35b1cdd1b2 Merge pull request #482 from benelan/main
Upgrade husky to v9
2024-07-29 16:07:40 -04:00
Ben Elan 3c6a5c5d52 empty commit 2024-07-26 18:10:15 -07:00
Ben Elan c44be22d0b Upgrade husky to v9 2024-07-24 20:48:36 -07:00
Timo adfd270e4b Specify that the script is JavaScript 2024-07-10 10:44:37 +02:00
Nick Schonning adc04e7dd8 chore: Add Dependabot for NPM and Actions 2024-06-03 18:13:31 -04:00
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
46 changed files with 33106 additions and 10135 deletions

No files matched your search

+1 -1
View File
@@ -5,7 +5,7 @@ extends:
- eslint:recommended
- plugin:@typescript-eslint/eslint-recommended
- plugin:@typescript-eslint/recommended
- prettier/@typescript-eslint
- prettier
parserOptions:
project: ['tsconfig.eslint.json']
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
+11
View File
@@ -0,0 +1,11 @@
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: 'weekly'
+2 -13
View File
@@ -10,11 +10,7 @@ on:
push:
branches:
- main
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
workflow_dispatch:
jobs:
@@ -24,14 +20,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Set Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: npm
- name: Install dependencies
run: npm ci
- uses: ./.github/actions/install-dependencies
- name: Rebuild the dist/ directory
run: npm run build
@@ -46,7 +35,7 @@ jobs:
id: diff
# If index.js was different than expected, upload the expected version as an artifact
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
with:
name: dist
+1 -5
View File
@@ -11,10 +11,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
cache: npm
- run: npm ci
- uses: ./.github/actions/install-dependencies
- run: npm run style:check
- run: npm test
+84 -29
View File
@@ -39,7 +39,7 @@ jobs:
result-encoding: string
- run: |
echo "- Validating relative require output"
if [[ "${{steps.relative-require.outputs.result}}" != "github-script" ]]; then
if [[ "${{steps.relative-require.outputs.result}}" != "@actions/github-script" ]]; then
echo $'::error::\u274C' "Expected '$expected', got ${{steps.relative-require.outputs.result}}"
exit 1
fi
@@ -50,12 +50,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- uses: ./.github/actions/install-dependencies
- id: npm-require
uses: ./
with:
@@ -71,23 +66,18 @@ jobs:
echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY
test-previews:
name: 'Integration test: previews option'
name: 'Integration test: GraphQL previews option'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- uses: ./.github/actions/install-dependencies
- id: previews-default
name: Default previews not set
uses: ./
with:
script: |
const endpoint = github.request.endpoint
return endpoint({}).headers.accept
return endpoint({url: "/graphql"}).headers.accept
result-encoding: string
- id: previews-set-single
name: Previews set to a single value
@@ -96,7 +86,7 @@ jobs:
previews: foo
script: |
const endpoint = github.request.endpoint
return endpoint({}).headers.accept
return endpoint({url: "/graphql"}).headers.accept
result-encoding: string
- id: previews-set-multiple
name: Previews set to comma-separated list
@@ -105,7 +95,7 @@ jobs:
previews: foo,bar,baz
script: |
const endpoint = github.request.endpoint
return endpoint({}).headers.accept
return endpoint({url: "/graphql"}).headers.accept
result-encoding: string
- run: |
echo "- Validating previews default"
@@ -133,12 +123,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- uses: ./.github/actions/install-dependencies
- id: user-agent-default
name: Default user-agent not set
uses: ./
@@ -195,12 +180,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ~/.npm
key: ${{runner.os}}-npm-${{hashFiles('**/package-lock.json')}}
restore-keys: ${{runner.os}}-npm-
- run: npm ci
- uses: ./.github/actions/install-dependencies
- id: debug-default
name: Default debug not set
uses: ./
@@ -268,3 +248,78 @@ jobs:
done <<< "$tests"
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
with:
version: '3.x'
- run: npm ci
- uses: ./.github/actions/install-dependencies
- run: licensed status
@@ -0,0 +1,20 @@
name: 'Publish Immutable Action Version'
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
packages: write
steps:
- name: Checking out
uses: actions/checkout@v4
- name: Publish
id: publish
uses: actions/publish-immutable-action@0.0.3
-3
View File
@@ -1,4 +1 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npm run pre-commit && git add dist/
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
+51 -26
View File
@@ -1,13 +1,13 @@
# actions/github-script
[![.github/workflows/integration.yml](https://github.com/actions/github-script/workflows/Integration/badge.svg?event=push&branch=main)](https://github.com/actions/github-script/actions?query=workflow%3AIntegration+branch%3Amain+event%3Apush)
[![.github/workflows/ci.yml](https://github.com/actions/github-script/workflows/CI/badge.svg?event=push&branch=main)](https://github.com/actions/github-script/actions?query=workflow%3ACI+branch%3Amain+event%3Apush)
[![.github/workflows/licensed.yml](https://github.com/actions/github-script/workflows/Licensed/badge.svg?event=push&branch=main)](https://github.com/actions/github-script/actions?query=workflow%3ALicensed+branch%3Amain+event%3Apush)
[![Integration](https://github.com/actions/github-script/actions/workflows/integration.yml/badge.svg?branch=main&event=push)](https://github.com/actions/github-script/actions/workflows/integration.yml)
[![CI](https://github.com/actions/github-script/actions/workflows/ci.yml/badge.svg?branch=main&event=push)](https://github.com/actions/github-script/actions/workflows/ci.yml)
[![Licensed](https://github.com/actions/github-script/actions/workflows/licensed.yml/badge.svg?branch=main&event=push)](https://github.com/actions/github-script/actions/workflows/licensed.yml)
This action makes it easy to quickly write a script in your workflow that
uses the GitHub API and the workflow run context.
To use this action, provide an input named `script` that contains the body of an asynchronous function call.
To use this action, provide an input named `script` that contains the body of an asynchronous JavaScript function call.
The following arguments will be provided:
- `github` A pre-authenticated
@@ -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
- `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
- `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
requiring relative paths (relative to the current working directory) and
requiring npm packages installed in the current working directory. If for
@@ -34,13 +33,21 @@ documentation.
## 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.
### 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
@@ -58,7 +65,7 @@ The return value of the script will be in the step's outputs under the
"result" key.
```yaml
- uses: actions/github-script@v6
- uses: actions/github-script@v7
id: set-result
with:
script: return "Hello!"
@@ -77,7 +84,7 @@ output of a github-script step. For some workflows, string encoding is preferred
`result-encoding` input:
```yaml
- uses: actions/github-script@v6
- uses: actions/github-script@v7
id: my-script
with:
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:
```yaml
- uses: actions/github-script@v6
- uses: actions/github-script@v7
id: my-script
with:
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:
```yaml
- uses: actions/github-script@v6
- uses: actions/github-script@v7
id: my-script
with:
result-encoding: string
@@ -136,7 +143,7 @@ By default, github-script will use the token provided to your workflow.
```yaml
- name: View context attributes
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: console.log(context)
```
@@ -152,7 +159,7 @@ jobs:
comment:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
@@ -174,7 +181,7 @@ jobs:
apply-label:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
github.rest.issues.addLabels({
@@ -196,7 +203,7 @@ jobs:
welcome:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
// Get a list of all issues created by the PR opener
@@ -225,7 +232,7 @@ jobs:
repo: context.repo.repo,
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:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
const diff_url = context.payload.pull_request.diff_url
@@ -265,7 +272,7 @@ jobs:
list-issues:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
const query = `query($owner:String!, $name:String!, $label:String!) {
@@ -299,7 +306,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
const script = require('./path/to/script.js')
@@ -337,7 +344,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/github-script@v6
- uses: actions/github-script@v7
env:
SHA: '${{env.parentSHA}}'
with:
@@ -377,11 +384,11 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
node-version: '20.x'
- run: npm ci
# or one-off:
- run: npm install execa
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
const execa = require('execa')
@@ -411,7 +418,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
script: |
const { default: printStuff } = await import('${{ github.workspace }}/src/print-stuff.js')
@@ -419,6 +426,24 @@ jobs:
await printStuff()
```
### Use scripts with jsDoc support
If you want type support for your scripts, you could use the command below to install the
`@actions/github-script` type declaration.
```sh
$ npm i -D @actions/github-script@github:actions/github-script
```
And then add the `jsDoc` declaration to your script like this:
```js
// @ts-check
/** @param {import('@actions/github-script').AsyncFunctionArguments} AsyncFunctionArguments */
export default async ({ core, context }) => {
core.debug("Running something at the moment");
return context.actor;
};
```
### Use env as input
You can set env vars to use them in your script:
@@ -430,7 +455,7 @@ jobs:
echo-input:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
env:
FIRST_NAME: Mona
LAST_NAME: Octocat
@@ -458,7 +483,7 @@ jobs:
apply-label:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
- uses: actions/github-script@v7
with:
github-token: ${{ secrets.MY_PAT }}
script: |
+5 -2
View File
@@ -19,7 +19,7 @@ inputs:
description: An optional user-agent string
default: actions/github-script
previews:
description: A comma-separated list of API previews to accept
description: A comma-separated list of GraphQL API previews to accept
result-encoding:
description: Either "string" or "json" (default "json")—how the result will be encoded
default: json
@@ -29,9 +29,12 @@ inputs:
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
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:
result:
description: The return value of the script, stringified with `JSON.stringify`
runs:
using: node16
using: node20
main: dist/index.js
+26871 -5823
View File
File diff suppressed because it is too large. Load diff
+5969 -4193
View File
File diff suppressed because it is too large. Load diff
+40 -32
View File
@@ -1,13 +1,18 @@
{
"name": "github-script",
"name": "@actions/github-script",
"description": "A GitHub action for executing a simple script",
"version": "6.4.0",
"version": "7.0.1",
"author": "GitHub",
"license": "MIT",
"main": "dist/index.js",
"types": "types/async-function.d.ts",
"private": true,
"engines": {
"node": ">=20.0.0 <21.0.0"
},
"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:write": "prettier --write src __test__",
"lint": "eslint src __test__",
@@ -15,45 +20,48 @@
"style:write": "run-p --continue-on-error --aggregate-output format:write lint",
"pre-commit": "run-s style:write test build",
"test": "jest",
"prepare": "husky install"
"prepare": "husky"
},
"jest": {
"preset": "ts-jest",
"testEnvironment": "node",
"globals": {
"ts-jest": {
"diagnostics": {
"ignoreCodes": [
"151001"
]
"transform": {
"^.+\\.ts$": [
"ts-jest",
{
"diagnostics": {
"ignoreCodes": [
"151001"
]
}
}
}
]
}
},
"dependencies": {
"@actions/core": "^1.10.0",
"@actions/exec": "^1.1.0",
"@actions/github": "^5.0.0",
"@actions/glob": "^0.3.0",
"@actions/io": "^1.1.1",
"@octokit/core": "^3.5.1",
"@octokit/plugin-request-log": "^1.0.4",
"@octokit/plugin-retry": "^3.0.9",
"node-fetch": "^2.6.7"
"@actions/core": "^1.10.1",
"@actions/exec": "^1.1.1",
"@actions/github": "^6.0.0",
"@actions/glob": "^0.4.0",
"@actions/io": "^1.1.3",
"@octokit/core": "^5.0.1",
"@octokit/plugin-request-log": "^4.0.0",
"@octokit/plugin-retry": "^6.0.1",
"@types/node": "^20.9.0"
},
"devDependencies": {
"@types/jest": "^27.0.2",
"@types/node-fetch": "^2.6.2",
"@typescript-eslint/eslint-plugin": "^3.10.1",
"@typescript-eslint/parser": "^3.10.1",
"@vercel/ncc": "^0.36.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^6.15.0",
"husky": "^7.0.0",
"jest": "^27.2.5",
"@types/jest": "^29.5.5",
"@typescript-eslint/eslint-plugin": "^6.7.5",
"@typescript-eslint/parser": "^6.7.5",
"@vercel/ncc": "^0.38.0",
"eslint": "^8.51.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-prettier": "^5.0.1",
"husky": "^9.1.7",
"jest": "^29.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.0.5",
"ts-jest": "^27.0.5",
"typescript": "^4.3.5"
"prettier": "^3.0.3",
"ts-jest": "^29.1.1",
"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 * as glob from '@actions/glob'
import * as io from '@actions/io'
import fetch from 'node-fetch'
const AsyncFunction = Object.getPrototypeOf(async () => null).constructor
type AsyncFunctionArguments = {
export declare type AsyncFunctionArguments = {
context: Context
core: typeof core
github: InstanceType<typeof GitHub>
exec: typeof exec
glob: typeof glob
io: typeof io
fetch: typeof fetch
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 {retry} from '@octokit/plugin-retry'
import {RequestRequestOptions} from '@octokit/types'
import fetch from 'node-fetch'
import {callAsyncFunction} from './async-function'
import {RetryOptions, getRetryOptions, parseNumberArray} from './retry-options'
import {wrapRequire} from './wrap-require'
@@ -18,6 +17,7 @@ main().catch(handleError)
type Options = {
log?: Console
userAgent?: string
baseUrl?: string
previews?: string[]
retry?: RetryOptions
request?: RequestRequestOptions
@@ -28,6 +28,7 @@ async function main(): Promise<void> {
const debug = core.getBooleanInput('debug')
const userAgent = core.getInput('user-agent')
const previews = core.getInput('previews')
const baseUrl = core.getInput('base-url')
const retries = parseInt(core.getInput('retries'))
const exemptStatusCodes = parseNumberArray(
core.getInput('retry-exempt-status-codes')
@@ -46,6 +47,12 @@ async function main(): Promise<void> {
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 script = core.getInput('script', {required: true})
@@ -59,8 +66,7 @@ async function main(): Promise<void> {
core,
exec,
glob,
io,
fetch
io
},
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>;