Merge branch 'main' into joshmgross/action-inputs-provider
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@github/actions-languageserver",
|
"name": "@github/actions-languageserver",
|
||||||
"version": "0.1.49",
|
"version": "0.1.50",
|
||||||
"description": "Language server for GitHub Actions",
|
"description": "Language server for GitHub Actions",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
"prettier-fix": "prettier --write ."
|
"prettier-fix": "prettier --write ."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@github/actions-languageservice": "^0.1.49",
|
"@github/actions-languageservice": "^0.1.50",
|
||||||
"@github/actions-workflow-parser": "*",
|
"@github/actions-workflow-parser": "*",
|
||||||
"@octokit/rest": "^19.0.5",
|
"@octokit/rest": "^19.0.5",
|
||||||
"vscode-languageserver": "^8.0.2",
|
"vscode-languageserver": "^8.0.2",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@github/actions-languageservice",
|
"name": "@github/actions-languageservice",
|
||||||
"version": "0.1.49",
|
"version": "0.1.50",
|
||||||
"description": "Language service for GitHub Actions",
|
"description": "Language service for GitHub Actions",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ describe("expressions", () => {
|
|||||||
describe("top-level auto-complete", () => {
|
describe("top-level auto-complete", () => {
|
||||||
it("single region", async () => {
|
it("single region", async () => {
|
||||||
const input = "run-name: ${{ | }}";
|
const input = "run-name: ${{ | }}";
|
||||||
const result = await complete(...getPositionFromCursor(input), undefined, contextProviderConfig);
|
const result = await complete(...getPositionFromCursor(input), undefined, undefined);
|
||||||
|
|
||||||
expect(result.map(x => x.label)).toEqual([
|
expect(result.map(x => x.label)).toEqual([
|
||||||
"github",
|
"github",
|
||||||
@@ -320,6 +320,23 @@ jobs:
|
|||||||
expect(result).toEqual([]);
|
expect(result).toEqual([]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("github context includes expected keys", async () => {
|
||||||
|
const input = `
|
||||||
|
on: push
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- run: echo \${{ github.| }}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const result = await complete(...getPositionFromCursor(input), undefined, undefined);
|
||||||
|
|
||||||
|
expect(result.map(x => x.label)).toContain("actor");
|
||||||
|
});
|
||||||
|
|
||||||
describe("steps context", () => {
|
describe("steps context", () => {
|
||||||
it("includes defined step IDs", async () => {
|
it("includes defined step IDs", async () => {
|
||||||
const input = `
|
const input = `
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import {data} from "@github/actions-expressions";
|
|||||||
import {Kind} from "@github/actions-expressions/data/expressiondata";
|
import {Kind} from "@github/actions-expressions/data/expressiondata";
|
||||||
import {WorkflowContext} from "../context/workflow-context";
|
import {WorkflowContext} from "../context/workflow-context";
|
||||||
import {ContextProviderConfig} from "./config";
|
import {ContextProviderConfig} from "./config";
|
||||||
|
import {getGithubContext} from "./github";
|
||||||
import {getInputsContext} from "./inputs";
|
import {getInputsContext} from "./inputs";
|
||||||
import {getMatrixContext} from "./matrix";
|
import {getMatrixContext} from "./matrix";
|
||||||
import {getNeedsContext} from "./needs";
|
import {getNeedsContext} from "./needs";
|
||||||
@@ -44,6 +45,18 @@ export async function getContext(
|
|||||||
|
|
||||||
function getDefaultContext(name: string, workflowContext: WorkflowContext, mode: Mode): ContextValue | undefined {
|
function getDefaultContext(name: string, workflowContext: WorkflowContext, mode: Mode): ContextValue | undefined {
|
||||||
switch (name) {
|
switch (name) {
|
||||||
|
case "github":
|
||||||
|
return getGithubContext();
|
||||||
|
|
||||||
|
case "inputs":
|
||||||
|
return getInputsContext(workflowContext);
|
||||||
|
|
||||||
|
case "matrix":
|
||||||
|
return getMatrixContext(workflowContext, mode);
|
||||||
|
|
||||||
|
case "needs":
|
||||||
|
return getNeedsContext(workflowContext);
|
||||||
|
|
||||||
case "runner":
|
case "runner":
|
||||||
return objectToDictionary({
|
return objectToDictionary({
|
||||||
os: "Linux",
|
os: "Linux",
|
||||||
@@ -53,12 +66,6 @@ function getDefaultContext(name: string, workflowContext: WorkflowContext, mode:
|
|||||||
temp: "/home/runner/work/_temp"
|
temp: "/home/runner/work/_temp"
|
||||||
});
|
});
|
||||||
|
|
||||||
case "needs":
|
|
||||||
return getNeedsContext(workflowContext);
|
|
||||||
|
|
||||||
case "inputs":
|
|
||||||
return getInputsContext(workflowContext);
|
|
||||||
|
|
||||||
case "secrets":
|
case "secrets":
|
||||||
return objectToDictionary({GITHUB_TOKEN: "***"});
|
return objectToDictionary({GITHUB_TOKEN: "***"});
|
||||||
|
|
||||||
@@ -67,9 +74,6 @@ function getDefaultContext(name: string, workflowContext: WorkflowContext, mode:
|
|||||||
|
|
||||||
case "strategy":
|
case "strategy":
|
||||||
return getStrategyContext(workflowContext);
|
return getStrategyContext(workflowContext);
|
||||||
|
|
||||||
case "matrix":
|
|
||||||
return getMatrixContext(workflowContext, mode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return undefined;
|
return undefined;
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
import {data} from "@github/actions-expressions";
|
||||||
|
|
||||||
|
export function getGithubContext(): data.Dictionary {
|
||||||
|
// https://docs.github.com/en/actions/learn-github-actions/contexts#github-context
|
||||||
|
const keys = [
|
||||||
|
"action",
|
||||||
|
"action_path",
|
||||||
|
"action_ref",
|
||||||
|
"action_repository",
|
||||||
|
"action_status",
|
||||||
|
"actor",
|
||||||
|
"api_url",
|
||||||
|
"base_ref",
|
||||||
|
"env",
|
||||||
|
"event",
|
||||||
|
"event_name",
|
||||||
|
"event_path",
|
||||||
|
"graphql_url",
|
||||||
|
"head_ref",
|
||||||
|
"job",
|
||||||
|
"ref",
|
||||||
|
"ref_name",
|
||||||
|
"ref_protected",
|
||||||
|
"ref_type",
|
||||||
|
"path",
|
||||||
|
"repository",
|
||||||
|
"repository_owner",
|
||||||
|
"repositoryUrl",
|
||||||
|
"retention_days",
|
||||||
|
"run_id",
|
||||||
|
"run_number",
|
||||||
|
"run_attempt",
|
||||||
|
"secret_source",
|
||||||
|
"server_url",
|
||||||
|
"sha",
|
||||||
|
"token",
|
||||||
|
"triggering_actor",
|
||||||
|
"workflow",
|
||||||
|
"workspace"
|
||||||
|
];
|
||||||
|
|
||||||
|
return new data.Dictionary(
|
||||||
|
...keys.map(key => {
|
||||||
|
return {key, value: new data.Null()};
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "browser-playground",
|
"name": "browser-playground",
|
||||||
"version": "0.1.49",
|
"version": "0.1.50",
|
||||||
"description": "",
|
"description": "",
|
||||||
"private": true,
|
"private": true,
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@github/actions-languageserver": "^0.1.49",
|
"@github/actions-languageserver": "^0.1.50",
|
||||||
"monaco-editor-webpack-plugin": "^7.0.1",
|
"monaco-editor-webpack-plugin": "^7.0.1",
|
||||||
"monaco-editor-workers": "^0.34.2",
|
"monaco-editor-workers": "^0.34.2",
|
||||||
"monaco-languageclient": "^4.0.3",
|
"monaco-languageclient": "^4.0.3",
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
|
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
|
||||||
"useWorkspaces": true,
|
"useWorkspaces": true,
|
||||||
"version": "0.1.49"
|
"version": "0.1.50"
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+7
-7
@@ -16,10 +16,10 @@
|
|||||||
},
|
},
|
||||||
"actions-languageserver": {
|
"actions-languageserver": {
|
||||||
"name": "@github/actions-languageserver",
|
"name": "@github/actions-languageserver",
|
||||||
"version": "0.1.49",
|
"version": "0.1.50",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@github/actions-languageservice": "^0.1.49",
|
"@github/actions-languageservice": "^0.1.50",
|
||||||
"@github/actions-workflow-parser": "*",
|
"@github/actions-workflow-parser": "*",
|
||||||
"@octokit/rest": "^19.0.5",
|
"@octokit/rest": "^19.0.5",
|
||||||
"vscode-languageserver": "^8.0.2",
|
"vscode-languageserver": "^8.0.2",
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
},
|
},
|
||||||
"actions-languageservice": {
|
"actions-languageservice": {
|
||||||
"name": "@github/actions-languageservice",
|
"name": "@github/actions-languageservice",
|
||||||
"version": "0.1.49",
|
"version": "0.1.50",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@github/actions-workflow-parser": "*",
|
"@github/actions-workflow-parser": "*",
|
||||||
@@ -61,10 +61,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"browser-playground": {
|
"browser-playground": {
|
||||||
"version": "0.1.49",
|
"version": "0.1.50",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@github/actions-languageserver": "^0.1.49",
|
"@github/actions-languageserver": "^0.1.50",
|
||||||
"monaco-editor-webpack-plugin": "^7.0.1",
|
"monaco-editor-webpack-plugin": "^7.0.1",
|
||||||
"monaco-editor-workers": "^0.34.2",
|
"monaco-editor-workers": "^0.34.2",
|
||||||
"monaco-languageclient": "^4.0.3",
|
"monaco-languageclient": "^4.0.3",
|
||||||
@@ -13507,7 +13507,7 @@
|
|||||||
"@github/actions-languageserver": {
|
"@github/actions-languageserver": {
|
||||||
"version": "file:actions-languageserver",
|
"version": "file:actions-languageserver",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@github/actions-languageservice": "^0.1.49",
|
"@github/actions-languageservice": "^0.1.50",
|
||||||
"@github/actions-workflow-parser": "*",
|
"@github/actions-workflow-parser": "*",
|
||||||
"@octokit/rest": "^19.0.5",
|
"@octokit/rest": "^19.0.5",
|
||||||
"@types/jest": "^29.0.3",
|
"@types/jest": "^29.0.3",
|
||||||
@@ -16292,7 +16292,7 @@
|
|||||||
"browser-playground": {
|
"browser-playground": {
|
||||||
"version": "file:browser-playground",
|
"version": "file:browser-playground",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@github/actions-languageserver": "^0.1.49",
|
"@github/actions-languageserver": "^0.1.50",
|
||||||
"css-loader": "^6.7.2",
|
"css-loader": "^6.7.2",
|
||||||
"monaco-editor-webpack-plugin": "^7.0.1",
|
"monaco-editor-webpack-plugin": "^7.0.1",
|
||||||
"monaco-editor-workers": "^0.34.2",
|
"monaco-editor-workers": "^0.34.2",
|
||||||
|
|||||||
Reference in New Issue
Block a user