Add docs and tests for getOctokit script context

This commit is contained in:
Salman Chishti
2026-03-09 04:44:59 -07:00
committed by GitHub
parent a7dc0e4fc1
commit cc685dce52
3 changed files with 24 additions and 0 deletions

View File

@@ -504,6 +504,8 @@ The `GITHUB_TOKEN` used by default is scoped to the current repository, see [Aut
If you need access to a different repository or an API that the `GITHUB_TOKEN` doesn't have permissions to, you can provide your own [PAT](https://help.github.com/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) as a secret using the `github-token` input. If you need access to a different repository or an API that the `GITHUB_TOKEN` doesn't have permissions to, you can provide your own [PAT](https://help.github.com/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) as a secret using the `github-token` input.
If you need to use multiple tokens in the same script, `getOctokit` is also available in the script context so you can create additional authenticated clients without using `require('@actions/github')`.
[Learn more about creating and using encrypted secrets](https://docs.github.com/actions/reference/encrypted-secrets) [Learn more about creating and using encrypted secrets](https://docs.github.com/actions/reference/encrypted-secrets)
```yaml ```yaml
@@ -516,6 +518,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v8 - uses: actions/github-script@v8
env:
APP_TOKEN: ${{ secrets.MY_OTHER_PAT }}
with: with:
github-token: ${{ secrets.MY_PAT }} github-token: ${{ secrets.MY_PAT }}
script: | script: |
@@ -525,6 +529,13 @@ jobs:
repo: context.repo.repo, repo: context.repo.repo,
labels: ['Triage'] labels: ['Triage']
}) })
const appOctokit = getOctokit(process.env.APP_TOKEN)
await appOctokit.rest.repos.createDispatchEvent({
owner: 'my-org',
repo: 'another-repo',
event_type: 'trigger-deploy'
})
``` ```
### Using exec package ### Using exec package

View File

@@ -8,6 +8,18 @@ describe('callAsyncFunction', () => {
expect(result).toEqual('bar') expect(result).toEqual('bar')
}) })
test('passes getOctokit through the script context', async () => {
const getOctokit = jest.fn().mockReturnValue('secondary-client')
const result = await callAsyncFunction(
{getOctokit} as any,
"return getOctokit('token')"
)
expect(getOctokit).toHaveBeenCalledWith('token')
expect(result).toEqual('secondary-client')
})
test('throws on ReferenceError', async () => { test('throws on ReferenceError', async () => {
expect.assertions(1) expect.assertions(1)

1
dist/index.js vendored
View File

@@ -36289,6 +36289,7 @@ async function main() {
__original_require__: require, __original_require__: require,
github, github,
octokit: github, octokit: github,
getOctokit: lib_github.getOctokit,
context: lib_github.context, context: lib_github.context,
core: core, core: core,
exec: exec, exec: exec,