From b0fda7d65c2cfb9a27fc45a5a059abd22610c903 Mon Sep 17 00:00:00 2001 From: Beth Brennan <34719884+elbrenn@users.noreply.github.com> Date: Wed, 16 Nov 2022 19:21:36 +0000 Subject: [PATCH 1/2] Get custom values for environment --- actions-languageserver/src/on-completion.ts | 18 ++++++++++---- .../src/value-providers/job-environtment.ts | 24 +++++++++++++++++++ 2 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 actions-languageserver/src/value-providers/job-environtment.ts diff --git a/actions-languageserver/src/on-completion.ts b/actions-languageserver/src/on-completion.ts index 892646a..6dfce22 100644 --- a/actions-languageserver/src/on-completion.ts +++ b/actions-languageserver/src/on-completion.ts @@ -7,6 +7,7 @@ import { Octokit } from "@octokit/rest"; import { CompletionItem, DocumentUri, Position } from "vscode-languageserver"; import { TextDocument } from "vscode-languageserver-textdocument"; import { RepositoryContext } from "./initializationOptions"; +import { getEnvironments } from "./value-providers/job-environtment"; import { getRunnerLabels } from "./value-providers/runs-on"; export async function onCompletion( @@ -38,10 +39,17 @@ async function getCustomValues( if (!repo) { return; } - if (key === "runs-on") { - const octokit = new Octokit({ - auth: sessionToken, - }); - return await getRunnerLabels(octokit, repo.owner, repo.name); + + const octokit = new Octokit({ + auth: sessionToken, + }); + + switch (key) { + case "job-environment": { + return await getEnvironments(octokit, repo.owner, repo.name); + } + case "runs-on": { + return await getRunnerLabels(octokit, repo.owner, repo.name); + } } } diff --git a/actions-languageserver/src/value-providers/job-environtment.ts b/actions-languageserver/src/value-providers/job-environtment.ts new file mode 100644 index 0000000..8a6b4b0 --- /dev/null +++ b/actions-languageserver/src/value-providers/job-environtment.ts @@ -0,0 +1,24 @@ +import { Value } from "@github/actions-languageservice/value-providers/config"; +import { Octokit } from "@octokit/rest"; + +export async function getEnvironments( + client: Octokit, + owner: string, + name: string +): Promise { + let environments: string[] = []; + try { + const response = await client.repos.getAllEnvironments({ + owner, + repo: name, + }); + + if (response.data.environments) { + environments = response.data.environments.map((env) => env.name); + } + } catch (e) { + console.log(e); + } + + return Array.from(environments).map((e) => ({ label: e })); +} From 7ff57ba679b3dbda076d34b91ab716dda916eeba Mon Sep 17 00:00:00 2001 From: Beth Brennan Date: Wed, 16 Nov 2022 16:21:36 -0500 Subject: [PATCH 2/2] Spelling, error logging --- actions-languageserver/src/on-completion.ts | 2 +- .../{job-environtment.ts => job-environment.ts} | 6 +++--- actions-languageserver/src/value-providers/runs-on.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) rename actions-languageserver/src/value-providers/{job-environtment.ts => job-environment.ts} (77%) diff --git a/actions-languageserver/src/on-completion.ts b/actions-languageserver/src/on-completion.ts index 6dfce22..6bb9e99 100644 --- a/actions-languageserver/src/on-completion.ts +++ b/actions-languageserver/src/on-completion.ts @@ -7,7 +7,7 @@ import { Octokit } from "@octokit/rest"; import { CompletionItem, DocumentUri, Position } from "vscode-languageserver"; import { TextDocument } from "vscode-languageserver-textdocument"; import { RepositoryContext } from "./initializationOptions"; -import { getEnvironments } from "./value-providers/job-environtment"; +import { getEnvironments } from "./value-providers/job-environment"; import { getRunnerLabels } from "./value-providers/runs-on"; export async function onCompletion( diff --git a/actions-languageserver/src/value-providers/job-environtment.ts b/actions-languageserver/src/value-providers/job-environment.ts similarity index 77% rename from actions-languageserver/src/value-providers/job-environtment.ts rename to actions-languageserver/src/value-providers/job-environment.ts index 8a6b4b0..163503c 100644 --- a/actions-languageserver/src/value-providers/job-environtment.ts +++ b/actions-languageserver/src/value-providers/job-environment.ts @@ -10,15 +10,15 @@ export async function getEnvironments( try { const response = await client.repos.getAllEnvironments({ owner, - repo: name, + repo: "bob", }); if (response.data.environments) { environments = response.data.environments.map((env) => env.name); } } catch (e) { - console.log(e); + console.log("Failure to retrieve environments: ", e); } - return Array.from(environments).map((e) => ({ label: e })); + return Array.from(environments).map((env) => ({ label: env })); } diff --git a/actions-languageserver/src/value-providers/runs-on.ts b/actions-languageserver/src/value-providers/runs-on.ts index 6daaf63..f4e12a1 100644 --- a/actions-languageserver/src/value-providers/runs-on.ts +++ b/actions-languageserver/src/value-providers/runs-on.ts @@ -34,7 +34,7 @@ export async function getRunnerLabels( } } } catch (e) { - console.log(e); + console.log("Failure to retrieve runner labels: ", e); } return Array.from(labels).map((label) => ({ label }));