Do not add source archive folder for "Model dependency"

This commit is contained in:
Koen Vlaswinkel
2023-09-11 15:45:41 +02:00
parent 27f46062ae
commit c93dd7a25b
5 changed files with 33 additions and 5 deletions

View File

@@ -87,6 +87,7 @@ export async function promptImportInternetDatabase(
* @param cli the CodeQL CLI server
* @param language the language to download. If undefined, the user will be prompted to choose a language.
* @param makeSelected make the new database selected in the databases panel (default: true)
* @param addSourceArchiveFolder whether to add a workspace folder containing the source archive to the workspace
*/
export async function promptImportGithubDatabase(
commandManager: AppCommandManager,
@@ -97,6 +98,7 @@ export async function promptImportGithubDatabase(
cli?: CodeQLCliServer,
language?: string,
makeSelected = true,
addSourceArchiveFolder = true,
): Promise<DatabaseItem | undefined> {
const githubRepo = await askForGitHubRepo(progress);
if (!githubRepo) {
@@ -112,6 +114,7 @@ export async function promptImportGithubDatabase(
cli,
language,
makeSelected,
addSourceArchiveFolder,
);
if (databaseItem) {
@@ -163,6 +166,7 @@ export async function askForGitHubRepo(
* @param cli the CodeQL CLI server
* @param language the language to download. If undefined, the user will be prompted to choose a language.
* @param makeSelected make the new database selected in the databases panel (default: true)
* @param addSourceArchiveFolder whether to add a workspace folder containing the source archive to the workspace
**/
export async function downloadGitHubDatabase(
githubRepo: string,
@@ -173,6 +177,7 @@ export async function downloadGitHubDatabase(
cli?: CodeQLCliServer,
language?: string,
makeSelected = true,
addSourceArchiveFolder = true,
): Promise<DatabaseItem | undefined> {
const nwo = getNwoFromGitHubUrl(githubRepo) || githubRepo;
if (!isValidGitHubNwo(nwo)) {
@@ -218,6 +223,7 @@ export async function downloadGitHubDatabase(
progress,
cli,
makeSelected,
addSourceArchiveFolder,
);
}
@@ -277,6 +283,7 @@ export async function importArchiveDatabase(
* @param nameOverride a name for the database that overrides the default
* @param progress callback to send progress messages to
* @param makeSelected make the new database selected in the databases panel (default: true)
* @param addSourceArchiveFolder whether to add a workspace folder containing the source archive to the workspace
*/
async function databaseArchiveFetcher(
databaseUrl: string,
@@ -287,6 +294,7 @@ async function databaseArchiveFetcher(
progress: ProgressCallback,
cli?: CodeQLCliServer,
makeSelected = true,
addSourceArchiveFolder = true,
): Promise<DatabaseItem> {
progress({
message: "Getting database",
@@ -329,6 +337,9 @@ async function databaseArchiveFetcher(
Uri.file(dbPath),
makeSelected,
nameOverride,
{
addSourceArchiveFolder,
},
);
return item;
} else {

View File

@@ -329,13 +329,14 @@ export class DatabaseUI extends DisposableObject {
if (databaseItem === undefined) {
const makeSelected = true;
const nameOverride = "CodeQL Tutorial Database";
const isTutorialDatabase = true;
await this.databaseManager.openDatabase(
uri,
makeSelected,
nameOverride,
isTutorialDatabase,
{
isTutorialDatabase: true,
},
);
}
await this.handleTourDependencies();

View File

@@ -71,6 +71,14 @@ function eventFired<T>(
});
}
type OpenDatabaseOptions = {
isTutorialDatabase?: boolean;
/**
* Whether to add a workspace folder containing the source archive to the workspace. Default is true.
*/
addSourceArchiveFolder?: boolean;
};
export class DatabaseManager extends DisposableObject {
private readonly _onDidChangeDatabaseItem = this.push(
new vscode.EventEmitter<DatabaseChangedEvent>(),
@@ -107,7 +115,10 @@ export class DatabaseManager extends DisposableObject {
uri: vscode.Uri,
makeSelected = true,
displayName?: string,
isTutorialDatabase?: boolean,
{
isTutorialDatabase = false,
addSourceArchiveFolder = true,
}: OpenDatabaseOptions = {},
): Promise<DatabaseItem> {
const databaseItem = await this.createDatabaseItem(uri, displayName);
@@ -115,6 +126,7 @@ export class DatabaseManager extends DisposableObject {
databaseItem,
makeSelected,
isTutorialDatabase,
addSourceArchiveFolder,
);
}
@@ -128,6 +140,7 @@ export class DatabaseManager extends DisposableObject {
databaseItem: DatabaseItemImpl,
makeSelected: boolean,
isTutorialDatabase?: boolean,
addSourceArchiveFolder = true,
): Promise<DatabaseItem> {
const existingItem = this.findDatabaseItem(databaseItem.databaseUri);
if (existingItem !== undefined) {
@@ -141,7 +154,9 @@ export class DatabaseManager extends DisposableObject {
if (makeSelected) {
await this.setCurrentDatabaseItem(databaseItem);
}
await this.addDatabaseSourceArchiveFolder(databaseItem);
if (addSourceArchiveFolder) {
await this.addDatabaseSourceArchiveFolder(databaseItem);
}
if (isCodespacesTemplate() && !isTutorialDatabase) {
await this.createSkeletonPacks(databaseItem);

View File

@@ -578,6 +578,7 @@ export class ModelEditorView extends AbstractWebview<
this.cliServer,
this.databaseItem.language,
makeSelected,
false,
);
if (!addedDatabase) {
void this.app.logger.log("No database chosen");

View File

@@ -742,7 +742,7 @@ describe("local databases", () => {
mockDbItem.databaseUri,
makeSelected,
nameOverride,
isTutorialDatabase,
{ isTutorialDatabase },
);
expect(createSkeletonPacksSpy).toBeCalledTimes(0);