From 86ac1371eac0dc7e160d1a54b09b001fbac372cb Mon Sep 17 00:00:00 2001 From: Emilien Escalle Date: Mon, 17 Feb 2025 11:50:46 +0100 Subject: [PATCH 1/4] docs: add "exec" usage examples --- README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/README.md b/README.md index 43c29f1..635eabd 100644 --- a/README.md +++ b/README.md @@ -494,3 +494,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@v7 + 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@v7 + with: + script: | + const { + exitCode, + stdout, + stderr + } = await exec.getExecOutput('echo', ['hello']); + + console.log(exitCode, stdout, stderr) +``` From 851500a2ad074568533e96b6a6779c2b00873d2e Mon Sep 17 00:00:00 2001 From: Josh Gross Date: Wed, 26 Feb 2025 14:38:00 -0500 Subject: [PATCH 2/4] Remove `octokit` README updates for v7 https://github.com/actions/github-script/issues/545 --- README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 43c29f1..347c75e 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ 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 JavaScript function call. The following arguments will be provided: -- `octokit` (and `github`) A pre-authenticated - [octokit/rest.js](https://octokit.github.io/rest.js) client _instance_ with pagination plugins +- `github` A pre-authenticated + [octokit/rest.js](https://octokit.github.io/rest.js) client with pagination plugins - `context` An object containing the [context of the workflow run](https://github.com/actions/toolkit/blob/main/packages/github/src/context.ts) - `core` A reference to the [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) package @@ -102,14 +102,14 @@ By default, requests made with the `github` instance will not be retried. You ca result-encoding: string retries: 3 script: | - octokit.rest.issues.get({ + github.rest.issues.get({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, }) ``` -In this example, request failures from `octokit.rest.issues.get()` will be retried up to 3 times. +In this example, request failures from `github.rest.issues.get()` will be retried up to 3 times. You can also configure which status codes should be exempt from retries via the `retry-exempt-status-codes` option: @@ -121,7 +121,7 @@ You can also configure which status codes should be exempt from retries via the retries: 3 retry-exempt-status-codes: 400,401 script: | - octokit.rest.issues.get({ + github.rest.issues.get({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, @@ -162,7 +162,7 @@ jobs: - uses: actions/github-script@v7 with: script: | - octokit.rest.issues.createComment({ + github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, @@ -184,7 +184,7 @@ jobs: - uses: actions/github-script@v7 with: script: | - octokit.rest.issues.addLabels({ + github.rest.issues.addLabels({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, @@ -209,12 +209,12 @@ jobs: // Get a list of all issues created by the PR opener // See: https://octokit.github.io/rest.js/#pagination const creator = context.payload.sender.login - const opts = octokit.rest.issues.listForRepo.endpoint.merge({ + const opts = github.rest.issues.listForRepo.endpoint.merge({ ...context.issue, creator, state: 'all' }) - const issues = await octokit.paginate(opts) + const issues = await github.paginate(opts) for (const issue of issues) { if (issue.number === context.issue.number) { @@ -226,7 +226,7 @@ jobs: } } - await octokit.rest.issues.createComment({ + await github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, @@ -252,7 +252,7 @@ jobs: with: script: | const diff_url = context.payload.pull_request.diff_url - const result = await octokit.request(diff_url) + const result = await github.request(diff_url) console.log(result) ``` @@ -289,7 +289,7 @@ jobs: name: context.repo.repo, label: 'wontfix' } - const result = await octokit.graphql(query, variables) + const result = await github.graphql(query, variables) console.log(result) ``` @@ -310,13 +310,13 @@ jobs: with: script: | const script = require('./path/to/script.js') - console.log(script({octokit, context})) + console.log(script({github, context})) ``` And then export a function from your module: ```javascript -module.exports = ({octokit, context}) => { +module.exports = ({github, context}) => { return context.payload.client_payload.value } ``` @@ -350,15 +350,15 @@ jobs: with: script: | const script = require('./path/to/script.js') - await script({octokit, context, core}) + await script({github, context, core}) ``` And then export an async function from your module: ```javascript -module.exports = async ({octokit, context, core}) => { +module.exports = async ({github, context, core}) => { const {SHA} = process.env - const commit = await octokit.rest.repos.getCommit({ + const commit = await github.rest.repos.getCommit({ owner: context.repo.owner, repo: context.repo.repo, ref: `${SHA}` @@ -487,7 +487,7 @@ jobs: with: github-token: ${{ secrets.MY_PAT }} script: | - octokit.rest.issues.addLabels({ + github.rest.issues.addLabels({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, From 14b73c4a7e4ab8aee398450f2dcbd641a370b0a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 19:08:31 +0000 Subject: [PATCH 3/4] Bump ruby/setup-ruby from 1.213.0 to 1.222.0 Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.213.0 to 1.222.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](https://github.com/ruby/setup-ruby/compare/28c4deda893d5a96a6b2d958c5b47fc18d65c9d3...277ba2a127aba66d45bad0fa2dc56f80dbfedffa) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/licensed.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/licensed.yml b/.github/workflows/licensed.yml index 15709f1..64ea872 100644 --- a/.github/workflows/licensed.yml +++ b/.github/workflows/licensed.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 # prefer to use a full fetch for licensed workflows - - uses: ruby/setup-ruby@28c4deda893d5a96a6b2d958c5b47fc18d65c9d3 # v1.213.0 + - uses: ruby/setup-ruby@277ba2a127aba66d45bad0fa2dc56f80dbfedffa # v1.222.0 with: ruby-version: ruby - uses: github/setup-licensed@v1 From 5b5837ac81aaa9b6bb45b00fb65655354e6b154c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Mar 2025 19:45:58 +0000 Subject: [PATCH 4/4] Bump ruby/setup-ruby from 1.222.0 to 1.229.0 Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.222.0 to 1.229.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](https://github.com/ruby/setup-ruby/compare/277ba2a127aba66d45bad0fa2dc56f80dbfedffa...354a1ad156761f5ee2b7b13fa8e09943a5e8d252) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/licensed.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/licensed.yml b/.github/workflows/licensed.yml index 64ea872..e8eb6d0 100644 --- a/.github/workflows/licensed.yml +++ b/.github/workflows/licensed.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 # prefer to use a full fetch for licensed workflows - - uses: ruby/setup-ruby@277ba2a127aba66d45bad0fa2dc56f80dbfedffa # v1.222.0 + - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1.229.0 with: ruby-version: ruby - uses: github/setup-licensed@v1