From 4d930dfc4e02a21abe18e89454eee62fc147a0d2 Mon Sep 17 00:00:00 2001 From: Christopher Schleiden Date: Mon, 28 Nov 2022 16:20:36 -0800 Subject: [PATCH] Update custom value providers --- actions-languageserver/src/value-providers.ts | 51 +++++++------------ 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/actions-languageserver/src/value-providers.ts b/actions-languageserver/src/value-providers.ts index fc537be..9e3fc8e 100644 --- a/actions-languageserver/src/value-providers.ts +++ b/actions-languageserver/src/value-providers.ts @@ -1,6 +1,6 @@ import { ValueProviderConfig } from "@github/actions-languageservice"; import { WorkflowContext } from "@github/actions-languageservice/context/workflow-context"; -import { Value } from "@github/actions-languageservice/value-providers/config"; +import { ValueProviderKind } from "@github/actions-languageservice/value-providers/config"; import { Octokit } from "@octokit/rest"; import { RepositoryContext } from "./initializationOptions"; import { TTLCache } from "./utils/cache"; @@ -9,44 +9,27 @@ import { getRunnerLabels } from "./value-providers/runs-on"; export function valueProviders( sessionToken: string | undefined, - repoContext: RepositoryContext | undefined, + repo: RepositoryContext | undefined, cache: TTLCache ): ValueProviderConfig { - if (!repoContext) { + if (!repo || !sessionToken) { return {}; } + const octokit = new Octokit({ + auth: sessionToken, + }); + return { - "job-environment": passOctoKit( - sessionToken, - repoContext, - cache, - getEnvironments - ), - "runs-on": passOctoKit(sessionToken, repoContext, cache, getRunnerLabels), - }; -} - -function passOctoKit( - sessionToken: string | undefined, - repo: RepositoryContext, - cache: TTLCache, - f: ( - octokit: Octokit, - cache: TTLCache, - owner: string, - name: string - ) => Promise -) { - return async function (context: WorkflowContext): Promise { - if (!sessionToken) { - return []; - } - - const octokit = new Octokit({ - auth: sessionToken, - }); - - return f(octokit, cache, repo.owner, repo.name); + "job-environment": { + kind: ValueProviderKind.AllowedValues, + get: (_: WorkflowContext) => + getEnvironments(octokit, cache, repo.owner, repo.name), + }, + "runs-on": { + kind: ValueProviderKind.SuggestedValues, + get: (_: WorkflowContext) => + getRunnerLabels(octokit, cache, repo.owner, repo.name), + }, }; }