BrowsersGitHub API client for GitHub Actions
@octokit/action
is not meant for browser usage.
Install with npm install @octokit/action
import { Octokit } from "@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: # Check out code using git - uses: actions/checkout@v4 # Install Node 20 - uses: actions/setup-node@v4 with: node-version: 20 - run: npm install @octokit/action # Node.js script can be anywhere. A good convention is to put local GitHub Actions # into the `.github/actions` folder - run: node .github/actions/my-script.js env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Setting GITHUB_TOKEN
on either with:
or env:
will work.
// .github/actions/my-script.js import { Octokit } from "@octokit/action"; const octokit = new Octokit(); // `octokit` is now authenticated using GITHUB_TOKENCreate an issue using REST API
import { Octokit } from "@octokit/action"; const octokit = new Octokit(); const [owner, repo] = process.env.GITHUB_REPOSITORY.split("/"); // See https://developer.github.com/v3/issues/#create-an-issue 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.
import { Octokit } from "@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", }, );
@octokit/action
is build upon @octokit/core
. Refer to its README for the full API documentation.
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"];
If you use self-hosted runners and require a proxy server to access internet resources then you will need to ensure that you have correctly configured the runner for proxy servers. @octokit/action
will pick up the configured proxy server environment variables and configure @octokit/core
with the correct request.dispatcher
using ProxyAgent. If you need to supply a different request.dispatcher
then you should ensure that it handles proxy servers if needed.
@octokit/action
is simply a @octokit/core
constructor, pre-authenticate using @octokit/auth-action
.
The source code is … simple: src/index.ts
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4