Skip to content

Commit aabeba0

Browse files
committed
Replace VariantAnalysisQueryLanguage -> QueryLanguage
1 parent 73838ff commit aabeba0

File tree

9 files changed

+24
-56
lines changed

9 files changed

+24
-56
lines changed

extensions/ql-vscode/src/qlpack-generator.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,7 @@ import { dump } from "js-yaml";
33
import { join } from "path";
44
import { Uri, workspace } from "vscode";
55
import { CodeQLCliServer } from "./cli";
6-
7-
export type QueryLanguage =
8-
| "csharp"
9-
| "cpp"
10-
| "go"
11-
| "java"
12-
| "javascript"
13-
| "python"
14-
| "ruby"
15-
| "swift";
6+
import { QueryLanguage } from "./types/query-language";
167

178
export class QlPackGenerator {
189
private readonly qlpackName: string;

extensions/ql-vscode/src/variant-analysis/gh-api/variant-analysis.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,19 @@
1+
import { QueryLanguage } from "../../types/query-language";
12
import { Repository, RepositoryWithMetadata } from "./repository";
23

34
export interface VariantAnalysisSubmissionRequest {
45
action_repo_ref: string;
5-
language: VariantAnalysisQueryLanguage;
6+
language: QueryLanguage;
67
query_pack: string;
78
repositories?: string[];
89
repository_lists?: string[];
910
repository_owners?: string[];
1011
}
1112

12-
export type VariantAnalysisQueryLanguage =
13-
| "csharp"
14-
| "cpp"
15-
| "go"
16-
| "java"
17-
| "javascript"
18-
| "python"
19-
| "ruby"
20-
| "swift";
21-
2213
export interface VariantAnalysis {
2314
id: number;
2415
controller_repo: Repository;
25-
query_language: VariantAnalysisQueryLanguage;
16+
query_language: QueryLanguage;
2617
query_pack_url: string;
2718
created_at: string;
2819
updated_at: string;

extensions/ql-vscode/src/variant-analysis/shared/variant-analysis.ts

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { Repository, RepositoryWithMetadata } from "./repository";
22
import { AnalysisAlert, AnalysisRawResults } from "./analysis-result";
3+
import { QueryLanguage } from "../../types/query-language";
34

45
export interface VariantAnalysis {
56
id: number;
67
controllerRepo: Repository;
78
query: {
89
name: string;
910
filePath: string;
10-
language: VariantAnalysisQueryLanguage;
11+
language: QueryLanguage;
1112
text: string;
1213
};
1314
databases: {
@@ -26,23 +27,10 @@ export interface VariantAnalysis {
2627
skippedRepos?: VariantAnalysisSkippedRepositories;
2728
}
2829

29-
export enum VariantAnalysisQueryLanguage {
30-
CSharp = "csharp",
31-
Cpp = "cpp",
32-
Go = "go",
33-
Java = "java",
34-
Javascript = "javascript",
35-
Python = "python",
36-
Ruby = "ruby",
37-
Swift = "swift",
38-
}
39-
4030
export function parseVariantAnalysisQueryLanguage(
4131
language: string,
42-
): VariantAnalysisQueryLanguage | undefined {
43-
return Object.values(VariantAnalysisQueryLanguage).find(
44-
(x) => x === language,
45-
);
32+
): QueryLanguage | undefined {
33+
return Object.values(QueryLanguage).find((x) => x === language);
4634
}
4735

4836
export enum VariantAnalysisStatus {
@@ -148,7 +136,7 @@ export interface VariantAnalysisSubmission {
148136
query: {
149137
name: string;
150138
filePath: string;
151-
language: VariantAnalysisQueryLanguage;
139+
language: QueryLanguage;
152140
text: string;
153141

154142
// Base64 encoded query pack.

extensions/ql-vscode/test/factories/variant-analysis/gh-api/variant-analysis-api-response.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
VariantAnalysisSkippedRepositories,
66
VariantAnalysisStatus,
77
} from "../../../../src/variant-analysis/gh-api/variant-analysis";
8-
import { VariantAnalysisQueryLanguage } from "../../../../src/variant-analysis/shared/variant-analysis";
8+
import { QueryLanguage } from "../../../../src/types/query-language";
99
import { createMockScannedRepos } from "./scanned-repositories";
1010
import { createMockSkippedRepos } from "./skipped-repositories";
1111
import { createMockRepository } from "./repository";
@@ -23,7 +23,7 @@ export function createMockApiResponse(
2323
full_name: "github/pickles",
2424
private: false,
2525
},
26-
query_language: VariantAnalysisQueryLanguage.Javascript,
26+
query_language: QueryLanguage.Javascript,
2727
query_pack_url: "https://example.com/foo",
2828
created_at: faker.date.recent().toISOString(),
2929
updated_at: faker.date.recent().toISOString(),

extensions/ql-vscode/test/factories/variant-analysis/shared/variant-analysis-submission.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import { faker } from "@faker-js/faker";
2-
import {
3-
VariantAnalysisQueryLanguage,
4-
VariantAnalysisSubmission,
5-
} from "../../../../src/variant-analysis/shared/variant-analysis";
2+
import { VariantAnalysisSubmission } from "../../../../src/variant-analysis/shared/variant-analysis";
3+
import { QueryLanguage } from "../../../../src/types/query-language";
64

75
export function createMockSubmission(): VariantAnalysisSubmission {
86
return {
@@ -12,7 +10,7 @@ export function createMockSubmission(): VariantAnalysisSubmission {
1210
query: {
1311
name: "query-name",
1412
filePath: "query-file-path",
15-
language: VariantAnalysisQueryLanguage.Javascript,
13+
language: QueryLanguage.Javascript,
1614
text: "query-text",
1715
pack: "base64-encoded-string",
1816
},

extensions/ql-vscode/test/factories/variant-analysis/shared/variant-analysis.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { faker } from "@faker-js/faker";
22
import {
33
VariantAnalysis,
4-
VariantAnalysisQueryLanguage,
54
VariantAnalysisScannedRepository,
65
VariantAnalysisSkippedRepositories,
76
VariantAnalysisStatus,
87
} from "../../../../src/variant-analysis/shared/variant-analysis";
98
import { createMockScannedRepos } from "./scanned-repositories";
109
import { createMockSkippedRepos } from "./skipped-repositories";
1110
import { createMockRepository } from "./repository";
11+
import { QueryLanguage } from "../../../../src/types/query-language";
1212

1313
export function createMockVariantAnalysis({
1414
status = VariantAnalysisStatus.InProgress,
@@ -32,7 +32,7 @@ export function createMockVariantAnalysis({
3232
query: {
3333
name: "a-query-name",
3434
filePath: "a-query-file-path",
35-
language: VariantAnalysisQueryLanguage.Javascript,
35+
language: QueryLanguage.Javascript,
3636
text: "a-query-text",
3737
},
3838
databases: {

extensions/ql-vscode/test/unit-tests/variant-analysis.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
import {
22
VariantAnalysis,
33
parseVariantAnalysisQueryLanguage,
4-
VariantAnalysisQueryLanguage,
54
VariantAnalysisStatus,
65
isVariantAnalysisComplete,
76
VariantAnalysisRepoStatus,
87
getActionsWorkflowRunUrl,
98
} from "../../src/variant-analysis/shared/variant-analysis";
109
import { createMockScannedRepo } from "../factories/variant-analysis/shared/scanned-repositories";
1110
import { createMockVariantAnalysis } from "../factories/variant-analysis/shared/variant-analysis";
11+
import { QueryLanguage } from "../../src/types/query-language";
1212

1313
describe("parseVariantAnalysisQueryLanguage", () => {
1414
it("parses a valid language", () => {
1515
expect(parseVariantAnalysisQueryLanguage("javascript")).toBe(
16-
VariantAnalysisQueryLanguage.Javascript,
16+
QueryLanguage.Javascript,
1717
);
1818
});
1919

extensions/ql-vscode/test/unit-tests/variant-analysis/markdown-generation.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import {
66
MarkdownFile,
77
} from "../../../src/variant-analysis/markdown-generation";
88
import {
9-
VariantAnalysisQueryLanguage,
109
VariantAnalysisRepoStatus,
1110
VariantAnalysisScannedRepository,
1211
VariantAnalysisScannedRepositoryResult,
1312
} from "../../../src/variant-analysis/shared/variant-analysis";
13+
import { QueryLanguage } from "../../../src/types/query-language";
1414
import {
1515
AnalysisAlert,
1616
AnalysisRawResults,
@@ -32,7 +32,7 @@ describe(generateVariantAnalysisMarkdown.name, () => {
3232
filePath:
3333
"c:\\git-repo\\vscode-codeql-starter\\ql\\javascript\\ql\\src\\Security\\CWE-078\\ShellCommandInjectionFromEnvironment.ql",
3434
text: '/**\n * @name Shell command built from environment values\n * @description Building a shell command string with values from the enclosing\n * environment may cause subtle bugs or vulnerabilities.\n * @kind path-problem\n * @problem.severity warning\n * @security-severity 6.3\n * @precision high\n * @id js/shell-command-injection-from-environment\n * @tags correctness\n * security\n * external/cwe/cwe-078\n * external/cwe/cwe-088\n */\n\nimport javascript\nimport DataFlow::PathGraph\nimport semmle.javascript.security.dataflow.ShellCommandInjectionFromEnvironmentQuery\n\nfrom\n Configuration cfg, DataFlow::PathNode source, DataFlow::PathNode sink, DataFlow::Node highlight,\n Source sourceNode\nwhere\n sourceNode = source.getNode() and\n cfg.hasFlowPath(source, sink) and\n if cfg.isSinkWithHighlight(sink.getNode(), _)\n then cfg.isSinkWithHighlight(sink.getNode(), highlight)\n else highlight = sink.getNode()\nselect highlight, source, sink, "This shell command depends on an uncontrolled $@.", sourceNode,\n sourceNode.getSourceType()\n',
35-
language: VariantAnalysisQueryLanguage.Javascript,
35+
language: QueryLanguage.Javascript,
3636
},
3737
},
3838
getResults(pathProblemAnalysesResults),
@@ -56,7 +56,7 @@ describe(generateVariantAnalysisMarkdown.name, () => {
5656
filePath:
5757
"c:\\git-repo\\vscode-codeql-starter\\ql\\javascript\\ql\\src\\Performance\\ReDoS.ql",
5858
text: '/**\n * @name Inefficient regular expression\n * @description A regular expression that requires exponential time to match certain inputs\n * can be a performance bottleneck, and may be vulnerable to denial-of-service\n * attacks.\n * @kind problem\n * @problem.severity error\n * @security-severity 7.5\n * @precision high\n * @id js/redos\n * @tags security\n * external/cwe/cwe-1333\n * external/cwe/cwe-730\n * external/cwe/cwe-400\n */\n\nimport javascript\nimport semmle.javascript.security.performance.ReDoSUtil\nimport semmle.javascript.security.performance.ExponentialBackTracking\n\nfrom RegExpTerm t, string pump, State s, string prefixMsg\nwhere hasReDoSResult(t, pump, s, prefixMsg)\nselect t,\n "This part of the regular expression may cause exponential backtracking on strings " + prefixMsg +\n "containing many repetitions of \'" + pump + "\'."\n',
59-
language: VariantAnalysisQueryLanguage.Javascript,
59+
language: QueryLanguage.Javascript,
6060
},
6161
},
6262
getResults(problemAnalysesResults),
@@ -79,7 +79,7 @@ describe(generateVariantAnalysisMarkdown.name, () => {
7979
name: "Contradictory guard nodes",
8080
filePath: "c:\\Users\\foo\\bar\\quick-query.ql",
8181
text: '/**\n * @name Contradictory guard nodes\n * \n * @description Snippet from "UselessComparisonTest.ql"\n */\n\nimport javascript\n\n/**\n * Holds if there are any contradictory guard nodes in `container`.\n *\n * We use this to restrict reachability analysis to a small set of containers.\n */\npredicate hasContradictoryGuardNodes(StmtContainer container) {\n exists(ConditionGuardNode guard |\n RangeAnalysis::isContradictoryGuardNode(guard) and\n container = guard.getContainer()\n )\n}\n\nfrom StmtContainer c\nwhere hasContradictoryGuardNodes(c)\nselect c, c.getNumLines()',
82-
language: VariantAnalysisQueryLanguage.Javascript,
82+
language: QueryLanguage.Javascript,
8383
},
8484
},
8585
getResults(rawResultsAnalysesResults),

extensions/ql-vscode/test/unit-tests/variant-analysis/variant-analysis-processor.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { faker } from "@faker-js/faker";
22
import { VariantAnalysisScannedRepository as ApiVariantAnalysisScannedRepository } from "../../../src/variant-analysis/gh-api/variant-analysis";
33
import {
4-
VariantAnalysisQueryLanguage,
54
VariantAnalysisScannedRepository,
65
VariantAnalysisRepoStatus,
76
} from "../../../src/variant-analysis/shared/variant-analysis";
@@ -18,6 +17,7 @@ import { createMockSkippedRepos } from "../../factories/variant-analysis/gh-api/
1817
import { createMockApiResponse } from "../../factories/variant-analysis/gh-api/variant-analysis-api-response";
1918
import { createMockSubmission } from "../../factories/variant-analysis/shared/variant-analysis-submission";
2019
import { createMockVariantAnalysisRepoTask } from "../../factories/variant-analysis/gh-api/variant-analysis-repo-task";
20+
import { QueryLanguage } from "../../../src/types/query-language";
2121

2222
describe(processVariantAnalysis.name, () => {
2323
const scannedRepos = createMockScannedRepos();
@@ -48,7 +48,7 @@ describe(processVariantAnalysis.name, () => {
4848
},
4949
query: {
5050
filePath: "query-file-path",
51-
language: VariantAnalysisQueryLanguage.Javascript,
51+
language: QueryLanguage.Javascript,
5252
name: "query-name",
5353
text: mockSubmission.query.text,
5454
},

0 commit comments

Comments
 (0)