A hydrated Octokit client.
Returns an authenticated Octokit client that follows the machine proxy settings. See https://octokit.github.io/rest.js for the API.
constgithub=require('@actions/github');constcore=require('@actions/core');asyncfunctionrun(){// This should be a token with access to your repository scoped in as a secret.// The YML workflow will need to set myToken with the GitHub Secret Token// myToken: ${{ secrets.GITHUB_TOKEN }}// https://help.github.com/en/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token#about-the-github_token-secretconstmyToken=core.getInput('myToken');constoctokit=newgithub.GitHub(myToken);const{data: pullRequest}=awaitoctokit.pulls.get({owner: 'octokit',repo: 'rest.js',pull_number: 123,mediaType: {format: 'diff'}});console.log(pullRequest);}run();You can pass client options, as specified by Octokit, as a second argument to the GitHub constructor.
You can also make GraphQL requests. See https://github.com/octokit/graphql.js for the API.
constresult=awaitoctokit.graphql(query,variables);Finally, you can get the context of the current action:
constgithub=require('@actions/github');constcontext=github.context;constnewIssue=awaitoctokit.issues.create({
...context.repo,title: 'New issue!',body: 'Hello Universe!'});The npm module @octokit/webhooks provides type definitions for the response payloads. You can cast the payload to these types for better type information.
First, install the npm module npm install @octokit/webhooks
Then, assert the type based on the eventName
import*ascorefrom'@actions/core'import*asgithubfrom'@actions/github'import*asWebhooksfrom'@octokit/webhooks'if(github.context.eventName==='push'){constpushPayload=github.context.payloadasWebhooks.WebhookPayloadPushcore.info(`The head commit is: ${pushPayload.head}`)}