mirror of
https://github.com/github/codeql-action.git
synced 2026-05-07 22:30:44 +00:00
66 lines
1.7 KiB
TypeScript
66 lines
1.7 KiB
TypeScript
import * as core from "@actions/core";
|
|
|
|
import { Logger } from "./logging";
|
|
|
|
// All the languages supported by CodeQL
|
|
export enum Language {
|
|
csharp = "csharp",
|
|
cpp = "cpp",
|
|
go = "go",
|
|
java = "java",
|
|
javascript = "javascript",
|
|
python = "python",
|
|
ruby = "ruby",
|
|
swift = "swift",
|
|
}
|
|
|
|
// Additional names for languages
|
|
const LANGUAGE_ALIASES: { [lang: string]: Language } = {
|
|
c: Language.cpp,
|
|
"c++": Language.cpp,
|
|
"c#": Language.csharp,
|
|
typescript: Language.javascript,
|
|
};
|
|
|
|
// Translate from user input or GitHub's API names for languages to CodeQL's names for languages
|
|
export function parseLanguage(language: string): Language | undefined {
|
|
// Normalise to lower case
|
|
language = language.toLowerCase();
|
|
|
|
// See if it's an exact match
|
|
if (language in Language) {
|
|
return language as Language;
|
|
}
|
|
|
|
// Check language aliases
|
|
if (language in LANGUAGE_ALIASES) {
|
|
return LANGUAGE_ALIASES[language];
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
export function isTracedLanguage(language: Language, logger: Logger): boolean {
|
|
if ("CODEQL_EXTRACTOR_GO_BUILD_TRACING" in process.env) {
|
|
logger.warning(
|
|
"Go build tracing is now enabled by default, so the CODEQL_EXTRACTOR_GO_BUILD_TRACING environment variable which was previously used to manually enable Go build tracing is now deprecated. We recommend that you remove this environment variable from your workflow."
|
|
);
|
|
}
|
|
|
|
if (language === Language.go) {
|
|
core.exportVariable("CODEQL_EXTRACTOR_GO_BUILD_TRACING", "on");
|
|
}
|
|
|
|
return [
|
|
Language.cpp,
|
|
Language.csharp,
|
|
Language.go,
|
|
Language.java,
|
|
Language.swift,
|
|
].includes(language);
|
|
}
|
|
|
|
export function isScannedLanguage(language: Language, logger: Logger): boolean {
|
|
return !isTracedLanguage(language, logger);
|
|
}
|