Skip to content

Commit fa5a589

Browse files
committed
Add "actions" as an analysis language
1 parent 8a70ead commit fa5a589

File tree

7 files changed

+25
-10
lines changed

7 files changed

+25
-10
lines changed

extensions/ql-vscode/src/common/query-language.ts

+17-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export enum QueryLanguage {
2+
Actions = "actions",
23
CSharp = "csharp",
34
Cpp = "cpp",
45
Go = "go",
@@ -11,6 +12,8 @@ export enum QueryLanguage {
1112

1213
export function getLanguageDisplayName(language: string): string {
1314
switch (language) {
15+
case QueryLanguage.Actions:
16+
return "Actions";
1417
case QueryLanguage.CSharp:
1518
return "C#";
1619
case QueryLanguage.Cpp:
@@ -33,6 +36,7 @@ export function getLanguageDisplayName(language: string): string {
3336
}
3437

3538
export const PACKS_BY_QUERY_LANGUAGE = {
39+
[QueryLanguage.Actions]: ["codeql/actions-queries"],
3640
[QueryLanguage.Cpp]: ["codeql/cpp-queries"],
3741
[QueryLanguage.CSharp]: [
3842
"codeql/csharp-queries",
@@ -46,7 +50,7 @@ export const PACKS_BY_QUERY_LANGUAGE = {
4650
};
4751

4852
export const dbSchemeToLanguage: Record<string, QueryLanguage> = {
49-
"semmlecode.javascript.dbscheme": QueryLanguage.Javascript,
53+
"semmlecode.javascript.dbscheme": QueryLanguage.Javascript, // This can also be QueryLanguage.Actions
5054
"semmlecode.cpp.dbscheme": QueryLanguage.Cpp,
5155
"semmlecode.dbscheme": QueryLanguage.Java,
5256
"semmlecode.python.dbscheme": QueryLanguage.Python,
@@ -56,6 +60,18 @@ export const dbSchemeToLanguage: Record<string, QueryLanguage> = {
5660
"swift.dbscheme": QueryLanguage.Swift,
5761
};
5862

63+
export const languageToDbScheme = Object.entries(dbSchemeToLanguage).reduce(
64+
(acc, [k, v]) => {
65+
acc[v] = k;
66+
return acc;
67+
},
68+
{} as { [k: string]: string },
69+
);
70+
71+
// Actions dbscheme is the same as Javascript dbscheme
72+
languageToDbScheme[QueryLanguage.Actions] =
73+
languageToDbScheme[QueryLanguage.Javascript];
74+
5975
export function isQueryLanguage(language: string): language is QueryLanguage {
6076
return Object.values(QueryLanguage).includes(language as QueryLanguage);
6177
}

extensions/ql-vscode/src/language-selection-panel/language-selection-data-provider.ts

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99

1010
const ALL_LANGUAGE_SELECTION_OPTIONS = [
1111
undefined, // All languages
12+
QueryLanguage.Actions,
1213
QueryLanguage.Cpp,
1314
QueryLanguage.CSharp,
1415
QueryLanguage.Go,

extensions/ql-vscode/src/query-history/store/query-history-dto.ts

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export type QueryHistoryItemDto =
1414
| QueryHistoryVariantAnalysisDto;
1515

1616
export enum QueryLanguageDto {
17+
Actions = "actions",
1718
CSharp = "csharp",
1819
Cpp = "cpp",
1920
Go = "go",

extensions/ql-vscode/src/query-history/store/query-history-language-domain-mapper.ts

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export function mapQueryLanguageToDto(
66
language: QueryLanguage,
77
): QueryLanguageDto {
88
switch (language) {
9+
case QueryLanguage.Actions:
10+
return QueryLanguageDto.Actions;
911
case QueryLanguage.CSharp:
1012
return QueryLanguageDto.CSharp;
1113
case QueryLanguage.Cpp:

extensions/ql-vscode/src/query-history/store/query-history-language-dto-mapper.ts

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export function mapQueryLanguageToDomainModel(
66
language: QueryLanguageDto,
77
): QueryLanguage {
88
switch (language) {
9+
case QueryLanguageDto.Actions:
10+
return QueryLanguage.Actions;
911
case QueryLanguageDto.CSharp:
1012
return QueryLanguage.CSharp;
1113
case QueryLanguageDto.Cpp:

extensions/ql-vscode/test/vscode-tests/cli-integration/local-queries/skeleton-query-wizard.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ describe("SkeletonQueryWizard", () => {
7878
getSupportedLanguages: jest
7979
.fn()
8080
.mockResolvedValue([
81+
"actions",
8182
"ruby",
8283
"javascript",
8384
"go",

extensions/ql-vscode/test/vscode-tests/cli-integration/run-cli.test.ts

+1-9
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { faker } from "@faker-js/faker";
1616
import { getActivatedExtension } from "../global.helper";
1717
import type { BaseLogger } from "../../../src/common/logging";
1818
import { getQlPackForDbscheme } from "../../../src/databases/qlpack";
19-
import { dbSchemeToLanguage } from "../../../src/common/query-language";
19+
import { languageToDbScheme } from "../../../src/common/query-language";
2020

2121
/**
2222
* Perform proper integration tests by running the CLI
@@ -27,14 +27,6 @@ describe("Use cli", () => {
2727

2828
let logSpy: jest.SpiedFunction<BaseLogger["log"]>;
2929

30-
const languageToDbScheme = Object.entries(dbSchemeToLanguage).reduce(
31-
(acc, [k, v]) => {
32-
acc[v] = k;
33-
return acc;
34-
},
35-
{} as { [k: string]: string },
36-
);
37-
3830
beforeEach(async () => {
3931
const extension = await getActivatedExtension();
4032
cli = extension.cliServer;

0 commit comments

Comments
 (0)