1
0
Fork 0
toolkit/packages/github
Thomas Boop 41157b23c7
Release 2.1.1 of @actions/github (#357)
2020-02-20 14:02:42 -05:00
..
__tests__ Correctly pull issue number for pull request review events (#311) 2020-01-21 10:44:38 -05:00
src Use import {Octokit} (#332) 2020-02-18 15:43:07 -05:00
README.md Update readme with type assertion information (#310) 2020-01-22 11:53:39 -05:00
RELEASES.md Release 2.1.1 of @actions/github (#357) 2020-02-20 14:02:42 -05:00
jest.config.js Add github package (#32) 2019-07-29 13:09:32 -04:00
package-lock.json Release 2.1.1 of @actions/github (#357) 2020-02-20 14:02:42 -05:00
package.json Release 2.1.1 of @actions/github (#357) 2020-02-20 14:02:42 -05:00
tsconfig.json octokit client should follow proxy settings (#314) 2020-01-18 14:28:37 -05:00

README.md

@actions/github

A hydrated Octokit client.

Usage

Returns an authenticated Octokit client that follows the machine proxy settings. 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 = new github.GitHub(myToken);

    const { data: pullRequest } = await octokit.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.

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.issues.create({
  ...context.repo,
  title: 'New issue!',
  body: 'Hello Universe!'
});

Webhook payload typescript definitions

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 * as core from '@actions/core'
import * as github from '@actions/github'
import * as Webhooks from '@octokit/webhooks'
if (github.context.eventName === 'push') {
  const pushPayload = github.context.payload as Webhooks.WebhookPayloadPush
  core.info(`The head commit is: ${pushPayload.head}`)
}