6.0.0 • Published 2 years ago

@actions/github v6.0.0

Weekly downloads
349,118
License
MIT
Repository
github
Last release
2 years ago

@actions/github

A hydrated Octokit client.

Usage

Returns an authenticated Octokit client that follows the machine proxy settings and correctly sets GHES base urls. See https://octokit.github.io/rest.js 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 }}
    // https://help.github.com/en/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token#about-the-github_token-secret
    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 octokit.rest.pulls.get({
        owner: 'octokit',
        repo: 'rest.js',
        pull_number: 123,
        mediaType: {
          format: 'diff'
        }
    });

    console.log(pullRequest);
}

run();

You can also make GraphQL requests. See https://github.com/octokit/graphql.js 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 octokit.rest.issues.create({
  ...context.repo,
  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
  core.info(`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
myOctokit.rest.enterpriseAdmin.createUser({
  login: "testuser",
  email: "testuser@test.com",
});
@francoadn/ta-core-libgithub-actions-kitissue_triage_actionsync-jira-subtask-to-gh-issues-actionaction-verify-pr-labelstravpro-actionsdavidgortegacmltest@onezerocompany/versioning@hediet/npm-template@sdlc.vitechteam/pipe-helper@sdlc.vitechteam/sdlc-pipelines-helper@sdlc.vitechteam/sdlcpipemti-testanyone-validate-fs@cutting/wait-for-vercel-preview-url@fundamend/action-github-tag@crazymax/actions-toolkit@liudonghua123/tauri-actiontokenlinkgithub-pr-collector@everything-registry/sub-chunk-26jsgithubactionemulatortbdocs-action-drafttauri-action-custom-repotag-syncersynopsys-sig-nodetaha-test-packagetest-github_actions_testwonjin-actionswait-for-vercel-previewworkflow-status-slack-notificationwiki-helpersrequire-allow-editstemplate-action-nodejstemplate-sync-actionstartgptcommittest-synopsys-sig-nodetests-toolssvg-color-replacetheguruvitest-github-action@docker/actions-toolkit@dr3/create-or-update-comment@codecov/bundler-plugin-core@codedesignplus/git-version@cocreate/s3@dahong/actions@deuscx/issue-blog-action@depot/actions-public-oidc-client@coveo/is-pr-title-semantic@coveo/merge-bot@cowlingj/generator-ecommerce-backend-servicejest-coverage-comment-actionissues-generationis-baguette-title-semanticjest-github-actionjs-eval-action-expression-contextjamesons-actions-toolkitkapix-github-cilastfm-readme@ng-easy/npm-setupupload_file_to_releasest-cl-parsersqlproj-analysis-clitwitter-list-synctuss-code-review-gpttypescript-github-action-templatetoasty-toaster-foundrytoken-who-am-itoken-who-am-i-actiontidev-cla-actiontrpc-toolstw5-plugin-packer@amityco/amityeko-bot-messenger@apwide/golive-github-actions@atlantis-lab/actl-check@atlantis-lab/actl-cr-publisher@atls/code-pack@atls/github-actions-utils@atls/github-checks-utils@autoblocks/cli@autoissue/autoissuebot@baked-developer/turbo-package@bamapps/bam-artifact@bamapps/bam.js@bamboostick/git_release_notes@beesley/pr-metadata@bgd-labs/foundry-zksync-toolchain@broadshield/github-actions-core-typed-inputs@broadshield/github-actions-octokit-hydrated@broadshield/github-actions-workflow-marie-kondo@brotherlymite/foundry-zksync-test-toolchain@checkdigit/github-actions@chhornponleu/gorunner@actions/artifact@actions/attest@action-runner/common@action-runner/npm-utils@action-badges/core@actions-for-rust/core
6.0.0

2 years ago

5.1.1

3 years ago

5.1.0

3 years ago

5.0.3

3 years ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

4 years ago

4.0.0

5 years ago

3.0.0

5 years ago

2.2.0

5 years ago

2.1.1

5 years ago

2.1.0

5 years ago

2.0.1

5 years ago

2.0.0

6 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago