diff --git a/src/api-client.ts b/src/api-client.ts index 8f35d7771..c734261bf 100644 --- a/src/api-client.ts +++ b/src/api-client.ts @@ -19,7 +19,12 @@ import { getEnv, exportEnvVar, } from "./environment"; -import { GITHUB_DOTCOM_URL, parseGitHubUrl } from "./github"; +import { + GITHUB_DOTCOM_URL, + parseGitHubUrl, + type GitHubApiCombinedDetails, + type GitHubApiDetails, +} from "./github"; import { Logger } from "./logging"; import { getRepositoryNwo, RepositoryNwo } from "./repository"; import { @@ -31,6 +36,8 @@ import { parseMatrixInput, } from "./util"; +export type { GitHubApiDetails, GitHubApiCombinedDetails } from "./github"; + const GITHUB_ENTERPRISE_VERSION_HEADER = "x-github-enterprise-version"; /** @@ -42,39 +49,6 @@ const GITHUB_ENTERPRISE_VERSION_HEADER = "x-github-enterprise-version"; */ export const DO_NOT_RETRY_STATUSES = [400, 410, 422, 451]; -/** - * Represents information about a GitHub instance, how to authenticate to it, - * and how to authenticate to other repos on it. - */ -export type GitHubApiCombinedDetails = GitHubApiDetails & - GitHubApiExternalRepoDetails; - -/** Represents information about a GitHub instance. */ -export type GitHubInstance = { - /** The base URL of the GitHub instance, such as `https://github.com`. */ - url: string; - /** - * The API base URL of the GitHub instance, such as `https://api.github.com`. - * Typically this is the `api.` subdomain of the `url` domain. - */ - apiURL: string | undefined; -}; - -/** Represents a {@link GitHubInstance} with a token for accessing the API. */ -export type GitHubApiDetails = GitHubInstance & { - /** The token to use for accessing the API of the GitHub instance. */ - auth: string; -}; - -/** - * Represents information for accessing a repository on the same GitHub instance as the Action - * is currently running on. - */ -export type GitHubApiExternalRepoDetails = { - /** An optional token for accessing repo(s) on the same GitHub instance. */ - externalRepoAuth?: string; -}; - /** * Gets the configuration for the private registry authentication proxy, * if it is available in the environment. diff --git a/src/github.ts b/src/github.ts index 8a5a2c389..4eef113de 100644 --- a/src/github.ts +++ b/src/github.ts @@ -1,4 +1,3 @@ -import type { GitHubInstance } from "./api-client"; import { ActionsEnvVars, type ReadOnlyEnv } from "./environment"; import { ConfigurationError } from "./util"; @@ -18,6 +17,39 @@ export type InstanceApiURL = string; */ export const GITHUB_DOTCOM_API_URL: InstanceApiURL = "https://api.github.com"; +/** + * Represents information about a GitHub instance, how to authenticate to it, + * and how to authenticate to other repos on it. + */ +export type GitHubApiCombinedDetails = GitHubApiDetails & + GitHubApiExternalRepoDetails; + +/** Represents information about a GitHub instance. */ +export type GitHubInstance = { + /** The base URL of the GitHub instance, such as `https://github.com`. */ + url: string; + /** + * The API base URL of the GitHub instance, such as `https://api.github.com`. + * Typically this is the `api.` subdomain of the `url` domain. + */ + apiURL: string | undefined; +}; + +/** Represents a {@link GitHubInstance} with a token for accessing the API. */ +export type GitHubApiDetails = GitHubInstance & { + /** The token to use for accessing the API of the GitHub instance. */ + auth: string; +}; + +/** + * Represents information for accessing a repository on the same GitHub instance as the Action + * is currently running on. + */ +export type GitHubApiExternalRepoDetails = { + /** An optional token for accessing repo(s) on the same GitHub instance. */ + externalRepoAuth?: string; +}; + /** * Parses user input of a github.com or GHES URL to a canonical form. * Removes any API prefix or suffix if one is present.