Skip to content

Commit e26ed57

Browse files
committed
Defer language aliasing to CLI when appropriate
1 parent 0ac7669 commit e26ed57

8 files changed

+45
-29
lines changed

lib/codeql.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resolve-environment-action.js

+1-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resolve-environment-action.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resolve-environment.js

+15-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resolve-environment.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/codeql.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ export interface CodeQL {
128128
*/
129129
resolveBuildEnvironment(
130130
workingDir: string | undefined,
131-
language: Language,
131+
language: string,
132132
): Promise<ResolveBuildEnvironmentOutput>;
133133

134134
/**
@@ -780,7 +780,7 @@ export async function getCodeQLForCmd(
780780
},
781781
async resolveBuildEnvironment(
782782
workingDir: string | undefined,
783-
language: Language,
783+
language: string,
784784
) {
785785
const codeqlArgs = [
786786
"resolve",

src/resolve-environment-action.ts

+1-12
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {
88
import { getGitHubVersion } from "./api-client";
99
import { CommandInvocationError } from "./codeql";
1010
import * as configUtils from "./config-utils";
11-
import { Language, parseLanguage } from "./languages";
1211
import { getActionsLogger } from "./logging";
1312
import { runResolveBuildEnvironment } from "./resolve-environment";
1413
import {
@@ -44,16 +43,6 @@ async function run() {
4443
return;
4544
}
4645

47-
const language: Language | undefined = parseLanguage(
48-
getRequiredInput("language"),
49-
);
50-
51-
if (language === undefined) {
52-
throw new Error(
53-
`Did not recognize the language "${getRequiredInput("language")}".`,
54-
);
55-
}
56-
5746
const gitHubVersion = await getGitHubVersion();
5847
checkGitHubVersionInRange(gitHubVersion, logger);
5948

@@ -69,7 +58,7 @@ async function run() {
6958
config.codeQLCmd,
7059
logger,
7160
workingDirectory,
72-
language,
61+
getRequiredInput("language"),
7362
);
7463
core.setOutput(ENVIRONMENT_OUTPUT_NAME, result);
7564
} catch (unwrappedError) {

src/resolve-environment.ts

+23-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,36 @@
1-
import { CODEQL_VERSION_RESOLVE_ENVIRONMENT, getCodeQL } from "./codeql";
2-
import { Language } from "./languages";
1+
import {
2+
CODEQL_VERSION_LANGUAGE_ALIASING,
3+
CODEQL_VERSION_RESOLVE_ENVIRONMENT,
4+
getCodeQL,
5+
} from "./codeql";
6+
import { parseLanguage } from "./languages";
37
import { Logger } from "./logging";
48
import * as util from "./util";
59

610
export async function runResolveBuildEnvironment(
711
cmd: string,
812
logger: Logger,
913
workingDir: string | undefined,
10-
language: Language,
14+
languageInput: string,
1115
) {
12-
logger.startGroup(`Attempting to resolve build environment for ${language}`);
16+
logger.startGroup(
17+
`Attempting to resolve build environment for ${languageInput}`,
18+
);
1319

1420
const codeql = await getCodeQL(cmd);
21+
22+
let language = languageInput;
23+
if (await util.codeQlVersionAbove(codeql, CODEQL_VERSION_LANGUAGE_ALIASING)) {
24+
// Delegate to the CodeQL CLI to handle aliasing.
25+
} else {
26+
// Handle aliasing in the Action using `parseLanguage`.
27+
const parsedLanguage = parseLanguage(languageInput)?.toString();
28+
if (parsedLanguage === undefined) {
29+
throw new Error(`Did not recognize the language '${languageInput}'.`);
30+
}
31+
language = parsedLanguage;
32+
}
33+
1534
let result = {};
1635

1736
// If the CodeQL version in use does not support the `resolve build-environment`

0 commit comments

Comments
 (0)