Never Publish Malarkey

    TypeScript icon, indicating that this package has built-in type declarations

    5.1.1 • Public • Published


    A hydrated Octokit client.


    Returns an authenticated Octokit client that follows the machine proxy settings and correctly sets GHES base urls. See for the API.

    const github = require('@actions/github');
    const core = require('@actions/core');
    async function run() {
        // 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 }}
        const myToken = core.getInput('myToken');
        const octokit = github.getOctokit(myToken)
        // You can also pass in additional options as a second parameter to getOctokit
        // const octokit = github.getOctokit(myToken, {userAgent: "MyActionVersion1"});
        const { data: pullRequest } = await{
            owner: 'octokit',
            repo: 'rest.js',
            pull_number: 123,
            mediaType: {
              format: 'diff'

    You can also make GraphQL requests. See for the API.

    const result = await octokit.graphql(query, variables);

    Finally, you can get the context of the current action:

    const github = require('@actions/github');
    const context = github.context;
    const newIssue = await{
      title: 'New issue!',
      body: 'Hello Universe!'

    Webhook payload typescript definitions

    The npm module @octokit/webhooks-definitions 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-definitions

    Then, assert the type based on the eventName

    import * as core from '@actions/core'
    import * as github from '@actions/github'
    import {PushEvent} from '@octokit/webhooks-definitions/schema'
    if (github.context.eventName === 'push') {
      const pushPayload = github.context.payload as PushEvent`The head commit is: ${pushPayload.head_commit}`)

    Extending the Octokit instance

    @octokit/core now supports the plugin architecture. You can extend the GitHub instance using plugins.

    For example, using the @octokit/plugin-enterprise-server you can now access enterprise admin apis on GHES instances.

    import { GitHub, getOctokitOptions } from '@actions/github/lib/utils'
    import { enterpriseServer220Admin } from '@octokit/plugin-enterprise-server'
    const octokit = GitHub.plugin(enterpriseServer220Admin)
    // or override some of the default values as well 
    // const octokit = GitHub.plugin(enterpriseServer220Admin).defaults({userAgent: "MyNewUserAgent"})
    const myToken = core.getInput('myToken');
    const myOctokit = new octokit(getOctokitOptions(token))
    // Create a new user{
      login: "testuser",
      email: "",


    npm i @actions/github

    DownloadsWeekly Downloads






    Unpacked Size

    20.9 kB

    Total Files


    Last publish


    • chrispat
    • bryanmacfarlane
    • hross
    • thboop
    • konradpabjan