Skip to content

Commit

Permalink
Add github_api_url input defaulting to env.GITHUB_API_URL (#43)
Browse files Browse the repository at this point in the history
  • Loading branch information
cliffchapmanrbx committed Oct 16, 2022
1 parent 8905248 commit 22db619
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
2 changes: 2 additions & 0 deletions action.yml
Expand Up @@ -14,6 +14,8 @@ inputs:
description: The full name of the repository for which the token will be requested (defaults to the current repository).
permissions:
description: The JSON-stringified permissions granted to the token (defaults to all the GitHub app permissions, see https://docs.github.com/en/rest/apps/apps#create-an-installation-access-token-for-an-app).
github_api_url:
description: The API URL of the GitHub server, such as https://api.github.com. Defaults to the environment variable GITHUB_API_URL, see https://docs.github.com/en/actions/reference/environment-variables#default-environment-variables.
outputs:
token:
description: An installation token for the GitHub App on the requested repository.
Expand Down
7 changes: 3 additions & 4 deletions src/fetch-installation-token.ts
@@ -1,18 +1,19 @@
import { env } from "node:process";
import { getOctokit } from "@actions/github";
import { createAppAuth } from "@octokit/auth-app";
import { request } from "@octokit/request";
import ensureError from "ensure-error";

export const fetchInstallationToken = async ({
appId,
baseUrl,
installationId,
owner,
permissions,
privateKey,
repo,
}: Readonly<{
appId: string;
baseUrl: URL;
installationId?: number;
owner: string;
permissions?: Record<string, string>;
Expand All @@ -23,9 +24,7 @@ export const fetchInstallationToken = async ({
appId,
privateKey,
request: request.defaults({
// GITHUB_API_URL is part of GitHub Actions' built-in environment variables.
// See https://docs.github.com/en/actions/reference/environment-variables#default-environment-variables.
baseUrl: env.GITHUB_API_URL,
baseUrl: baseUrl.toString().replace(/\/+$/, ''),
}),
});

Expand Down
9 changes: 9 additions & 0 deletions src/index.ts
@@ -1,4 +1,5 @@
import { Buffer } from "node:buffer";
import { env } from "node:process";
import { getInput, info, setFailed, setOutput, setSecret } from "@actions/core";
import { context } from "@actions/github";
import ensureError from "ensure-error";
Expand Down Expand Up @@ -29,8 +30,16 @@ const run = async () => {
? repositoryInput.split("/")
: [context.repo.owner, context.repo.repo];

// GITHUB_API_URL is part of GitHub Actions' built-in environment variables.
// See https://docs.github.com/en/actions/reference/environment-variables#default-environment-variables.
const githubUrlInput = getInput("github_api_url");
const baseUrl = githubUrlInput
? new URL(githubUrlInput)
: new URL(env.GITHUB_API_URL!);

const installationToken = await fetchInstallationToken({
appId,
baseUrl,
installationId,
owner,
permissions,
Expand Down

0 comments on commit 22db619

Please sign in to comment.