mirror of
https://github.com/github/codeql-action.git
synced 2026-01-06 22:50:17 +08:00
Fix auto-detection of extractors that aren't languages
This commit is contained in:
8
lib/config-utils.js
generated
8
lib/config-utils.js
generated
@@ -135,7 +135,13 @@ async function getSupportedLanguageMap(codeql) {
|
||||
const supportedLanguages = {};
|
||||
// Populate canonical language names
|
||||
for (const extractor of Object.keys(resolveResult.extractors)) {
|
||||
supportedLanguages[extractor] = extractor;
|
||||
// Require the language to be a known language.
|
||||
// This is a temporary workaround since we have extractors that are not
|
||||
// supported languages, such as `csv`, `html`, `properties`, `xml`, and
|
||||
// `yaml`. We should replace this with a more robust solution in the future.
|
||||
if (languages_1.KnownLanguage[extractor] !== undefined) {
|
||||
supportedLanguages[extractor] = extractor;
|
||||
}
|
||||
}
|
||||
// Populate language aliases
|
||||
if (resolveResult.aliases) {
|
||||
|
||||
File diff suppressed because one or more lines are too long
15
lib/config-utils.test.js
generated
15
lib/config-utils.test.js
generated
@@ -78,6 +78,7 @@ function createTestInitConfigInputs(overrides) {
|
||||
async betterResolveLanguages() {
|
||||
return {
|
||||
extractors: {
|
||||
html: [{ extractor_root: "" }],
|
||||
javascript: [{ extractor_root: "" }],
|
||||
},
|
||||
};
|
||||
@@ -803,6 +804,20 @@ const mockRepositoryNwo = (0, repository_1.parseRepositoryNwo)("owner/repo");
|
||||
expectedApiCall: false,
|
||||
expectedError: configUtils.getUnknownLanguagesError(["a", "b"]),
|
||||
},
|
||||
{
|
||||
name: "extractors that aren't languages aren't included (specified)",
|
||||
languagesInput: "html",
|
||||
languagesInRepository: [],
|
||||
expectedApiCall: false,
|
||||
expectedError: configUtils.getUnknownLanguagesError(["html"]),
|
||||
},
|
||||
{
|
||||
name: "extractors that aren't languages aren't included (autodetected)",
|
||||
languagesInput: "",
|
||||
languagesInRepository: ["html", "javascript"],
|
||||
expectedApiCall: true,
|
||||
expectedLanguages: ["javascript"],
|
||||
},
|
||||
].forEach((args) => {
|
||||
(0, ava_1.default)(`getLanguages: ${args.name}`, async (t) => {
|
||||
const mockRequest = (0, testing_utils_1.mockLanguagesInRepo)(args.languagesInRepository);
|
||||
|
||||
File diff suppressed because one or more lines are too long
3
lib/languages.js
generated
3
lib/languages.js
generated
@@ -9,8 +9,9 @@ exports.KnownLanguage = void 0;
|
||||
*/
|
||||
var KnownLanguage;
|
||||
(function (KnownLanguage) {
|
||||
KnownLanguage["csharp"] = "csharp";
|
||||
KnownLanguage["actions"] = "actions";
|
||||
KnownLanguage["cpp"] = "cpp";
|
||||
KnownLanguage["csharp"] = "csharp";
|
||||
KnownLanguage["go"] = "go";
|
||||
KnownLanguage["java"] = "java";
|
||||
KnownLanguage["javascript"] = "javascript";
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACH,IAAY,aAUX;AAVD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,4BAAW,CAAA;IACX,0BAAS,CAAA;IACT,8BAAa,CAAA;IACb,0CAAyB,CAAA;IACzB,kCAAiB,CAAA;IACjB,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,gCAAe,CAAA;AACjB,CAAC,EAVW,aAAa,6BAAb,aAAa,QAUxB"}
|
||||
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACH,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,4BAAW,CAAA;IACX,kCAAiB,CAAA;IACjB,0BAAS,CAAA;IACT,8BAAa,CAAA;IACb,0CAAyB,CAAA;IACzB,kCAAiB,CAAA;IACjB,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,gCAAe,CAAA;AACjB,CAAC,EAXW,aAAa,6BAAb,aAAa,QAWxB"}
|
||||
Reference in New Issue
Block a user