Derive the API client type from @actions/github

`ApiClient` was hand-composed from `Octokit`, `Api` and `PaginateInterface`, imported directly from separately versioned Octokit packages. That asserted a shape matching what `@actions/github` actually returns, which held only while the versions happened to agree.

`@octokit/plugin-rest-endpoint-methods` v18 adds twelve Actions cache-limit methods. `@actions/github` still depends on `^17.0.0`, so the client it constructs no longer satisfies the v18-derived alias and the build fails.

Deriving the type from the constructor removes the assumption, so the alias tracks whatever `@actions/github` returns.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Henry Mercer
2026-08-27 18:56:47 +01:00
parent 25694c08ea
commit 1bcdd0c019
3 changed files with 10 additions and 16 deletions

16
lib/entry-points.js generated
View File

@@ -23510,18 +23510,18 @@ var init_dist_src2 = __esm({
} }
}); });
// node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js // node_modules/@actions/github/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js
var VERSION5; var VERSION5;
var init_version2 = __esm({ var init_version2 = __esm({
"node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js"() { "node_modules/@actions/github/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js"() {
VERSION5 = "17.0.0"; VERSION5 = "17.0.0";
} }
}); });
// node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js // node_modules/@actions/github/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js
var Endpoints, endpoints_default; var Endpoints, endpoints_default;
var init_endpoints = __esm({ var init_endpoints = __esm({
"node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js"() { "node_modules/@actions/github/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js"() {
Endpoints = { Endpoints = {
actions: { actions: {
addCustomLabelsToSelfHostedRunnerForOrg: [ addCustomLabelsToSelfHostedRunnerForOrg: [
@@ -25815,7 +25815,7 @@ var init_endpoints = __esm({
} }
}); });
// node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js // node_modules/@actions/github/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js
function endpointsToMethods(octokit) { function endpointsToMethods(octokit) {
const newMethods = {}; const newMethods = {};
for (const scope of endpointMethodsMap.keys()) { for (const scope of endpointMethodsMap.keys()) {
@@ -25866,7 +25866,7 @@ function decorate(octokit, scope, methodName, defaults3, decorations) {
} }
var endpointMethodsMap, handler; var endpointMethodsMap, handler;
var init_endpoints_to_methods = __esm({ var init_endpoints_to_methods = __esm({
"node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js"() { "node_modules/@actions/github/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js"() {
init_endpoints(); init_endpoints();
endpointMethodsMap = /* @__PURE__ */ new Map(); endpointMethodsMap = /* @__PURE__ */ new Map();
for (const [scope, endpoints] of Object.entries(endpoints_default)) { for (const [scope, endpoints] of Object.entries(endpoints_default)) {
@@ -25944,7 +25944,7 @@ var init_endpoints_to_methods = __esm({
} }
}); });
// node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js // node_modules/@actions/github/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js
var dist_src_exports2 = {}; var dist_src_exports2 = {};
__export(dist_src_exports2, { __export(dist_src_exports2, {
legacyRestEndpointMethods: () => legacyRestEndpointMethods, legacyRestEndpointMethods: () => legacyRestEndpointMethods,
@@ -25964,7 +25964,7 @@ function legacyRestEndpointMethods(octokit) {
}; };
} }
var init_dist_src3 = __esm({ var init_dist_src3 = __esm({
"node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js"() { "node_modules/@actions/github/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js"() {
init_version2(); init_version2();
init_endpoints_to_methods(); init_endpoints_to_methods();
restEndpointMethods.VERSION = VERSION5; restEndpointMethods.VERSION = VERSION5;

View File

@@ -1,10 +1,7 @@
import * as githubUtils from "@actions/github/lib/utils"; import * as githubUtils from "@actions/github/lib/utils";
import { type Octokit } from "@octokit/core";
import { type PaginateInterface } from "@octokit/plugin-paginate-rest";
import { type Api } from "@octokit/plugin-rest-endpoint-methods";
/** The type of the Octokit client. */ /** The type of the Octokit client. */
export type ApiClient = Octokit & Api & { paginate: PaginateInterface }; export type ApiClient = InstanceType<typeof githubUtils.GitHub>;
/** Constructs an `ApiClient` using `token` for authentication. */ /** Constructs an `ApiClient` using `token` for authentication. */
export function getApiClient(token: string): ApiClient { export function getApiClient(token: string): ApiClient {

View File

@@ -1,8 +1,5 @@
import * as core from "@actions/core"; import * as core from "@actions/core";
import * as githubUtils from "@actions/github/lib/utils"; import * as githubUtils from "@actions/github/lib/utils";
import { type Octokit } from "@octokit/core";
import { type PaginateInterface } from "@octokit/plugin-paginate-rest";
import { type Api } from "@octokit/plugin-rest-endpoint-methods";
import * as retry from "@octokit/plugin-retry"; import * as retry from "@octokit/plugin-retry";
import { RequestRequestOptions } from "@octokit/types"; import { RequestRequestOptions } from "@octokit/types";
import { import {
@@ -128,7 +125,7 @@ export function makeProxyRequestOptions(
} }
/** The type of GitHub API client we use. */ /** The type of GitHub API client we use. */
export type ApiClient = Octokit & Api & { paginate: PaginateInterface }; export type ApiClient = InstanceType<typeof githubUtils.GitHub>;
/** Options for `createApiClientWithDetails`. */ /** Options for `createApiClientWithDetails`. */
interface CreateApiClientOptions { interface CreateApiClientOptions {