Merge pull request #2332 from jrozner/http-database
Allow HTTP connections to fetch database
This commit is contained in:
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
## [UNRELEASED]
|
## [UNRELEASED]
|
||||||
|
|
||||||
|
- Add new configuration option to allow downloading databases from http, non-secure servers. [#2332](https://github.com/github/vscode-codeql/pull/2332)
|
||||||
|
|
||||||
## 1.8.2 - 12 April 2023
|
## 1.8.2 - 12 April 2023
|
||||||
|
|
||||||
- Fix bug where users could end up with the managed CodeQL CLI getting uninstalled during upgrades and not reinstalled. [#2294](https://github.com/github/vscode-codeql/pull/2294)
|
- Fix bug where users could end up with the managed CodeQL CLI getting uninstalled during upgrades and not reinstalled. [#2294](https://github.com/github/vscode-codeql/pull/2294)
|
||||||
|
|||||||
@@ -293,6 +293,11 @@
|
|||||||
"scope": "window",
|
"scope": "window",
|
||||||
"minimum": 0,
|
"minimum": 0,
|
||||||
"description": "Report a warning for any join order whose metric exceeds this value."
|
"description": "Report a warning for any join order whose metric exceeds this value."
|
||||||
|
},
|
||||||
|
"codeQL.databaseDownload.allowHttp": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Allow database to be downloaded via HTTP. Warning: enabling this option will allow downloading from insecure servers."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -608,3 +608,14 @@ export const CODESPACES_TEMPLATE = new Setting(
|
|||||||
export function isCodespacesTemplate() {
|
export function isCodespacesTemplate() {
|
||||||
return !!CODESPACES_TEMPLATE.getValue<boolean>();
|
return !!CODESPACES_TEMPLATE.getValue<boolean>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const DATABASE_DOWNLOAD_SETTING = new Setting("databaseDownload", ROOT_SETTING);
|
||||||
|
|
||||||
|
export const ALLOW_HTTP_SETTING = new Setting(
|
||||||
|
"allowHttp",
|
||||||
|
DATABASE_DOWNLOAD_SETTING,
|
||||||
|
);
|
||||||
|
|
||||||
|
export function allowHttp(): boolean {
|
||||||
|
return ALLOW_HTTP_SETTING.getValue<boolean>() || false;
|
||||||
|
}
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import {
|
|||||||
} from "./common/github-url-identifier-helper";
|
} from "./common/github-url-identifier-helper";
|
||||||
import { Credentials } from "./common/authentication";
|
import { Credentials } from "./common/authentication";
|
||||||
import { AppCommandManager } from "./common/commands";
|
import { AppCommandManager } from "./common/commands";
|
||||||
|
import { ALLOW_HTTP_SETTING } from "./config";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prompts a user to fetch a database from a remote location. Database is assumed to be an archive file.
|
* Prompts a user to fetch a database from a remote location. Database is assumed to be an archive file.
|
||||||
@@ -49,7 +50,7 @@ export async function promptImportInternetDatabase(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
validateHttpsUrl(databaseUrl);
|
validateUrl(databaseUrl);
|
||||||
|
|
||||||
const item = await databaseArchiveFetcher(
|
const item = await databaseArchiveFetcher(
|
||||||
databaseUrl,
|
databaseUrl,
|
||||||
@@ -356,7 +357,7 @@ async function getStorageFolder(storagePath: string, urlStr: string) {
|
|||||||
return folderName;
|
return folderName;
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateHttpsUrl(databaseUrl: string) {
|
function validateUrl(databaseUrl: string) {
|
||||||
let uri;
|
let uri;
|
||||||
try {
|
try {
|
||||||
uri = Uri.parse(databaseUrl, true);
|
uri = Uri.parse(databaseUrl, true);
|
||||||
@@ -364,7 +365,7 @@ function validateHttpsUrl(databaseUrl: string) {
|
|||||||
throw new Error(`Invalid url: ${databaseUrl}`);
|
throw new Error(`Invalid url: ${databaseUrl}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uri.scheme !== "https") {
|
if (!ALLOW_HTTP_SETTING.getValue() && uri.scheme !== "https") {
|
||||||
throw new Error("Must use https for downloading a database.");
|
throw new Error("Must use https for downloading a database.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user