action.js
GitHub API client for GitHub Actions
Usage
Browsers
|
@octokit/action is not meant for browser usage.
|
---|
Node
|
Install with npm install @octokit/action
const { Octokit } = require("@octokit/action");
|
---|
You can pass secret.GITHUB_TOKEN
or any of your own secrets to a Node.js script. For example
name: My Node Action
on:
- pull_request
jobs:
my-action:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
version: 12
- run: npm install @octokit/action
- run: node .github/actions/my-script.js
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Setting GITHUB_TOKEN
on either with:
or env:
will work.
const { Octokit } = require("@octokit/action");
const octokit = new Octokit();
Create an issue using REST API
const { Octokit } = require("@octokit/action");
const octokit = new Octokit();
const [owner, repo] = process.env.GITHUB_REPOSITORY.split("/");
const { data } = await octokit.request("POST /repos/{owner}/{repo}/issues", {
owner,
repo,
title: "My test issue",
});
console.log("Issue created: %s", data.html_url);
You can also use octokit.issues.create({ owner, repo, title })
. See the REST endpoint methods plugin for a list of all available methods.
Create an issue using GraphQL
const { Octokit } = require("@octokit/action");
const octokit = new Octokit();
const eventPayload = require(process.env.GITHUB_EVENT_PATH);
const repositoryId = eventPayload.repository.node_id;
const response = await octokit.graphql(
`
mutation($repositoryId:ID!, $title:String!) {
createIssue(input:{repositoryId: $repositoryId, title: $title}) {
issue {
number
}
}
}
`,
{
repositoryId,
title: "My test issue",
}
);
Hooks, plugins, and more
@octokit/action
is build upon @octokit/core
. Refer to its README for the full API documentation.
TypeScript: Endpoint method parameters and responses
Types for endpoint method parameters and responses are exported as RestEndpointMethodTypes
. They keys are the same as the endpoint methods. Here is an example to retrieve the parameter and response types for octokit.checks.create()
import { RestEndpointMethodTypes } from `@octokit/action`;
type ChecksCreateParams = RestEndpointMethodTypes["checks"]["create"]["parameters"];
type ChecksCreateResponse = RestEndpointMethodTypes["checks"]["create"]["response"];
How it works
@octokit/action
is simply a @octokit/core
constructor, pre-authenticate using `@octokit/auth-action.
The source code is … simple: src/index.ts
.
License
MIT