diff --git a/.github/actions/install-dependencies/action.yml b/.github/actions/install-dependencies/action.yml index c5f23930e..82fbe0afd 100644 --- a/.github/actions/install-dependencies/action.yml +++ b/.github/actions/install-dependencies/action.yml @@ -3,9 +3,9 @@ description: 'Set up node and install dependencies' runs: using: 'composite' steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: '20.x' + node-version: '24.x' cache: npm - run: npm ci diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 0d3376c48..901ea9f19 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,6 +5,11 @@ updates: schedule: interval: 'weekly' + - package-ecosystem: 'github-actions' + directory: '/.github/actions/install-dependencies' + schedule: + interval: 'weekly' + - package-ecosystem: 'npm' directory: '/' schedule: diff --git a/.github/workflows/check-dist.yml b/.github/workflows/check-dist.yml index ce3b9f36c..6a10549b5 100644 --- a/.github/workflows/check-dist.yml +++ b/.github/workflows/check-dist.yml @@ -13,12 +13,15 @@ on: pull_request: workflow_dispatch: +permissions: + contents: read + jobs: check-dist: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/install-dependencies diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd2216d96..f5619e9b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,11 +6,14 @@ on: pull_request: branches: [main] +permissions: + contents: read + jobs: ci: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/install-dependencies - run: npm run style:check - run: npm test diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f08e12701..fd0e0b123 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -38,11 +38,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -56,7 +56,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -69,4 +69,4 @@ jobs: # ./location_of_script_within_repo/buildscript.sh - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 720dca114..346a57f2e 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -6,12 +6,15 @@ on: pull_request: branches: [main] +permissions: + contents: read + jobs: test-return: name: 'Integration test: return' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: output-set uses: ./ with: @@ -31,7 +34,7 @@ jobs: name: 'Integration test: relative-path require' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: relative-require uses: ./ with: @@ -49,7 +52,7 @@ jobs: name: 'Integration test: npm package require' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/install-dependencies - id: npm-require uses: ./ @@ -69,7 +72,7 @@ jobs: name: 'Integration test: GraphQL previews option' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/install-dependencies - id: previews-default name: Default previews not set @@ -122,7 +125,7 @@ jobs: name: 'Integration test: user-agent option' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/install-dependencies - id: user-agent-default name: Default user-agent not set @@ -179,7 +182,7 @@ jobs: name: "Integration test: debug option (runner.debug mode ${{ matrix.environment && 'enabled' || 'disabled' }})" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/install-dependencies - id: debug-default name: Default debug not set @@ -253,7 +256,7 @@ jobs: name: 'Integration test: base-url option' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/install-dependencies - id: base-url-default diff --git a/.github/workflows/licensed.yml b/.github/workflows/licensed.yml index 7afc7a306..e8eb6d0d6 100644 --- a/.github/workflows/licensed.yml +++ b/.github/workflows/licensed.yml @@ -8,17 +8,23 @@ on: branches: - main +permissions: + contents: read + jobs: test: runs-on: ubuntu-latest name: Check licenses steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 # prefer to use a full fetch for licensed workflows - # https://github.com/jonabc/setup-licensed/releases/tag/v1.1.1 - - uses: jonabc/setup-licensed@82c5f4d19e8968efa74a25b132922382c2671fe2 + - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1.229.0 + with: + ruby-version: ruby + - uses: github/setup-licensed@v1 with: - version: '3.x' + version: '4.x' + github_token: ${{ secrets.GITHUB_TOKEN }} - uses: ./.github/actions/install-dependencies - run: licensed status diff --git a/.github/workflows/publish-immutable-actions.yml b/.github/workflows/publish-immutable-actions.yml index 87c020728..3a60acbf3 100644 --- a/.github/workflows/publish-immutable-actions.yml +++ b/.github/workflows/publish-immutable-actions.yml @@ -17,4 +17,4 @@ jobs: uses: actions/checkout@v4 - name: Publish id: publish - uses: actions/publish-immutable-action@0.0.3 + uses: actions/publish-immutable-action@0.0.4 diff --git a/.github/workflows/pull-request-test.yml b/.github/workflows/pull-request-test.yml index fb87ec3a9..3dec9d5a8 100644 --- a/.github/workflows/pull-request-test.yml +++ b/.github/workflows/pull-request-test.yml @@ -5,11 +5,15 @@ on: branches: [main] types: [opened, synchronize] +permissions: + contents: read + pull-requests: write + jobs: pull-request-test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./ with: script: | @@ -20,9 +24,9 @@ jobs: issue_number: context.payload.number, }) - // Find any comment already made by the bot. - const botComment = comments.find(comment => comment.user.id === 41898282) - const commentBody = "Hello from actions/github-script! (${{ github.sha }})" + // Find any comment already made by the bot. + const botComment = comments.find(comment => comment.user.id === 41898282) + const commentBody = "Hello from actions/github-script! (${{ github.sha }})" if (context.payload.pull_request.head.repo.full_name !== 'actions/github-script') { console.log('Not attempting to write comment on PR from fork'); diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index 7a3b654ac..000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Stale Issues & PRs - -on: - schedule: - - cron: '0 0 * * *' - workflow_dispatch: - -jobs: - mark_stale: - name: Mark issues and PRs as stale - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v3 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - exempt-issue-labels: Not Stale - exempt-pr-labels: Not Stale - stale-issue-message: > - This issue is stale because it has been open for 60 days with no - activity. Remove the "Stale" label or comment on the issue, or it - will be closed in 7 days. - stale-pr-message: > - This pull request is stale because it has been open for 60 days - with no activity. Remove the "Stale" label or comment on the pull - request, or it will be closed in 7 days. - close-issue-message: > - This issue has been marked as stale and closed due to no activity - on it. - close-pr-message: > - This pull request has been marked as stale and closed due to no - activity on it. diff --git a/.gitignore b/.gitignore index 2a2759268..096746c14 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -/node_modules/ -!/.vscode/ \ No newline at end of file +/node_modules/ \ No newline at end of file diff --git a/.licenses/npm/@types/node.dep.yml b/.licenses/npm/@types/node.dep.yml index d5ab59f38..86544f488 100644 --- a/.licenses/npm/@types/node.dep.yml +++ b/.licenses/npm/@types/node.dep.yml @@ -1,6 +1,6 @@ --- name: "@types/node" -version: 20.9.0 +version: 24.1.0 type: npm summary: TypeScript definitions for node homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node diff --git a/.licenses/npm/undici-types.dep.yml b/.licenses/npm/undici-types.dep.yml index a65b8affc..370219bfa 100644 --- a/.licenses/npm/undici-types.dep.yml +++ b/.licenses/npm/undici-types.dep.yml @@ -1,15 +1,17 @@ --- name: undici-types -version: 5.26.5 +version: 7.8.0 type: npm summary: A stand-alone types package for Undici homepage: https://undici.nodejs.org license: mit licenses: -- sources: Auto-generated MIT license text +- sources: LICENSE text: | MIT License + Copyright (c) Matteo Collina and Undici contributors + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights diff --git a/.vscode/settings.json b/.vscode/settings.json index b075686bb..23fd35f0e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,10 +1,3 @@ { - "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.organizeImports": true - }, - "files.exclude": { - "**/dist": true, - "**/node_modules": true - } -} + "editor.formatOnSave": true +} \ No newline at end of file diff --git a/README.md b/README.md index 7e244d07a..3dfe48d4e 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,26 @@ This action makes it easy to quickly write a script in your workflow that uses the GitHub API and the workflow run context. +### Note + +Thank you for your interest in this GitHub action, however, right now we are not taking contributions. + +We continue to focus our resources on strategic areas that help our customers be successful while making developers' lives easier. While GitHub Actions remains a key part of this vision, we are allocating resources towards other areas of Actions and are not taking contributions to this repository at this time. The GitHub public roadmap is the best place to follow along for any updates on features we’re working on and what stage they’re in. + +We are taking the following steps to better direct requests related to GitHub Actions, including: + +1. We will be directing questions and support requests to our [Community Discussions area](https://github.com/orgs/community/discussions/categories/actions) + +2. High Priority bugs can be reported through Community Discussions or you can report these to our support team https://support.github.com/contact/bug-report. + +3. Security Issues should be handled as per our [security.md](security.md) + +We will still provide security updates for this project and fix major breaking changes during this time. + +You are welcome to still raise bugs in this repo. + +### This action + 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: @@ -33,6 +53,14 @@ documentation. ## Breaking Changes +### V8 + +Version 8 of this action updated the runtime to Node 24 - https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-javascript-actions + +All scripts are now run with Node 24 instead of Node 20 and are affected by any breaking changes between Node 20 and 24. + +**This requires a minimum Actions Runner version of [v2.327.1](https://github.com/actions/runner/releases/tag/v2.327.1)** + ### V7 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 @@ -59,13 +87,38 @@ For example, `github.issues.createComment` in V4 becomes `github.rest.issues.cre See [development.md](/docs/development.md). +## Passing inputs to the script + +Actions expressions are evaluated before the `script` is passed to the action, so the result of any expressions +*will be evaluated as JavaScript code*. + +It's highly recommended to *not* evaluate expressions directly in the `script` to avoid +[script injections](https://docs.github.com/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions#understanding-the-risk-of-script-injections) +and potential `SyntaxError`s when the expression is not valid JavaScript code (particularly when it comes to improperly escaped strings). + +To pass inputs, set `env` vars on the action step and reference them in your script with `process.env`: + +```yaml +- uses: actions/github-script@v8 + env: + TITLE: ${{ github.event.pull_request.title }} + with: + script: | + const title = process.env.TITLE; + if (title.startsWith('octocat')) { + console.log("PR title starts with 'octocat'"); + } else { + console.error("PR title did not start with 'octocat'"); + } +``` + ## Reading step results The return value of the script will be in the step's outputs under the "result" key. ```yaml -- uses: actions/github-script@v7 +- uses: actions/github-script@v8 id: set-result with: script: return "Hello!" @@ -84,7 +137,7 @@ output of a github-script step. For some workflows, string encoding is preferred `result-encoding` input: ```yaml -- uses: actions/github-script@v7 +- uses: actions/github-script@v8 id: my-script with: result-encoding: string @@ -96,7 +149,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@v7 +- uses: actions/github-script@v8 id: my-script with: result-encoding: string @@ -114,7 +167,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@v7 +- uses: actions/github-script@v8 id: my-script with: result-encoding: string @@ -143,7 +196,7 @@ By default, github-script will use the token provided to your workflow. ```yaml - name: View context attributes - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: console.log(context) ``` @@ -159,7 +212,7 @@ jobs: comment: runs-on: ubuntu-latest steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 with: script: | github.rest.issues.createComment({ @@ -181,7 +234,7 @@ jobs: apply-label: runs-on: ubuntu-latest steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 with: script: | github.rest.issues.addLabels({ @@ -203,7 +256,7 @@ jobs: welcome: runs-on: ubuntu-latest steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 with: script: | // Get a list of all issues created by the PR opener @@ -248,7 +301,7 @@ jobs: diff: runs-on: ubuntu-latest steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 with: script: | const diff_url = context.payload.pull_request.diff_url @@ -272,7 +325,7 @@ jobs: list-issues: runs-on: ubuntu-latest steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 with: script: | const query = `query($owner:String!, $name:String!, $label:String!) { @@ -305,8 +358,8 @@ jobs: echo-input: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/github-script@v7 + - uses: actions/checkout@v4 + - uses: actions/github-script@v8 with: script: | const script = require('./path/to/script.js') @@ -343,8 +396,8 @@ jobs: echo-input: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/github-script@v7 + - uses: actions/checkout@v4 + - uses: actions/github-script@v8 env: SHA: '${{env.parentSHA}}' with: @@ -381,14 +434,14 @@ jobs: echo-input: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: '20.x' - run: npm ci # or one-off: - run: npm install execa - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 with: script: | const execa = require('execa') @@ -417,8 +470,8 @@ jobs: print-stuff: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/github-script@v7 + - uses: actions/checkout@v4 + - uses: actions/github-script@v8 with: script: | const { default: printStuff } = await import('${{ github.workspace }}/src/print-stuff.js') @@ -444,27 +497,6 @@ export default async ({ core, context }) => { }; ``` -### Use env as input - -You can set env vars to use them in your script: - -```yaml -on: push - -jobs: - echo-input: - runs-on: ubuntu-latest - steps: - - uses: actions/github-script@v7 - env: - FIRST_NAME: Mona - LAST_NAME: Octocat - with: - script: | - const { FIRST_NAME, LAST_NAME } = process.env - - console.log(`Hello ${FIRST_NAME} ${LAST_NAME}`) -``` ### Using a separate GitHub token @@ -483,7 +515,7 @@ jobs: apply-label: runs-on: ubuntu-latest steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 with: github-token: ${{ secrets.MY_PAT }} script: | @@ -494,3 +526,45 @@ jobs: labels: ['Triage'] }) ``` + +### Using exec package + +The provided [@actions/exec](https://github.com/actions/toolkit/tree/main/packages/exec) package allows to execute command or tools in a cross platform way: + +```yaml +on: push + +jobs: + use-exec: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/github-script@v8 + with: + script: | + const exitCode = await exec.exec('echo', ['hello']) + + console.log(exitCode) +``` + +`exec` packages provides `getExecOutput` function to retrieve stdout and stderr from executed command: + +```yaml +on: push + +jobs: + use-get-exec-output: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/github-script@v8 + with: + script: | + const { + exitCode, + stdout, + stderr + } = await exec.getExecOutput('echo', ['hello']); + + console.log(exitCode, stdout, stderr) +``` diff --git a/action.yml b/action.yml index 12a726afc..664020876 100644 --- a/action.yml +++ b/action.yml @@ -36,5 +36,5 @@ outputs: result: description: The return value of the script, stringified with `JSON.stringify` runs: - using: node20 + using: node24 main: dist/index.js diff --git a/dist/index.js b/dist/index.js index c615a0691..bb06b77b9 100644 --- a/dist/index.js +++ b/dist/index.js @@ -36286,6 +36286,7 @@ async function main() { require: wrapRequire, __original_require__: require, github, + octokit: github, context: lib_github.context, core: core, exec: exec, diff --git a/package-lock.json b/package-lock.json index a5c09ded2..93edb739d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@octokit/core": "^5.0.1", "@octokit/plugin-request-log": "^4.0.0", "@octokit/plugin-retry": "^6.0.1", - "@types/node": "^20.9.0" + "@types/node": "^24.1.0" }, "devDependencies": { "@types/jest": "^29.5.5", @@ -35,7 +35,7 @@ "typescript": "^5.2.2" }, "engines": { - "node": ">=20.0.0 <21.0.0" + "node": ">=24" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -1672,11 +1672,12 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", - "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", + "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~7.8.0" } }, "node_modules/@types/semver": { @@ -7113,9 +7114,10 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "license": "MIT" }, "node_modules/universal-user-agent": { "version": "6.0.0", @@ -8652,11 +8654,11 @@ "dev": true }, "@types/node": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", - "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", + "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==", "requires": { - "undici-types": "~5.26.4" + "undici-types": "~7.8.0" } }, "@types/semver": { @@ -12542,9 +12544,9 @@ } }, "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==" }, "universal-user-agent": { "version": "6.0.0", diff --git a/package.json b/package.json index 288efac52..287c392ee 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,14 @@ { "name": "@actions/github-script", "description": "A GitHub action for executing a simple script", + "engines": { + "node": ">=24" + }, "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": "npm run build:types && ncc build src/main.ts", "build:types": "tsc src/async-function.ts -t es5 --declaration --allowJs --emitDeclarationOnly --outDir types", @@ -47,7 +46,7 @@ "@octokit/core": "^5.0.1", "@octokit/plugin-request-log": "^4.0.0", "@octokit/plugin-retry": "^6.0.1", - "@types/node": "^20.9.0" + "@types/node": "^24.1.0" }, "devDependencies": { "@types/jest": "^29.5.5", diff --git a/src/async-function.ts b/src/async-function.ts index a60af8755..84035f222 100644 --- a/src/async-function.ts +++ b/src/async-function.ts @@ -11,6 +11,7 @@ export declare type AsyncFunctionArguments = { context: Context core: typeof core github: InstanceType + octokit: InstanceType exec: typeof exec glob: typeof glob io: typeof io diff --git a/src/main.ts b/src/main.ts index 81df4f0e1..baa2933dc 100644 --- a/src/main.ts +++ b/src/main.ts @@ -62,6 +62,7 @@ async function main(): Promise { require: wrapRequire, __original_require__: __non_webpack_require__, github, + octokit: github, context, core, exec, diff --git a/types/async-function.d.ts b/types/async-function.d.ts index 910a62493..b204e3639 100644 --- a/types/async-function.d.ts +++ b/types/async-function.d.ts @@ -9,6 +9,7 @@ export declare type AsyncFunctionArguments = { context: Context; core: typeof core; github: InstanceType; + octokit: InstanceType; exec: typeof exec; glob: typeof glob; io: typeof io;