Skip to content

Commit c93dd7a

Browse files
committed
Do not add source archive folder for "Model dependency"
1 parent 27f4606 commit c93dd7a

5 files changed

Lines changed: 33 additions & 5 deletions

File tree

extensions/ql-vscode/src/databases/database-fetcher.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ export async function promptImportInternetDatabase(
8787
* @param cli the CodeQL CLI server
8888
* @param language the language to download. If undefined, the user will be prompted to choose a language.
8989
* @param makeSelected make the new database selected in the databases panel (default: true)
90+
* @param addSourceArchiveFolder whether to add a workspace folder containing the source archive to the workspace
9091
*/
9192
export async function promptImportGithubDatabase(
9293
commandManager: AppCommandManager,
@@ -97,6 +98,7 @@ export async function promptImportGithubDatabase(
9798
cli?: CodeQLCliServer,
9899
language?: string,
99100
makeSelected = true,
101+
addSourceArchiveFolder = true,
100102
): Promise<DatabaseItem | undefined> {
101103
const githubRepo = await askForGitHubRepo(progress);
102104
if (!githubRepo) {
@@ -112,6 +114,7 @@ export async function promptImportGithubDatabase(
112114
cli,
113115
language,
114116
makeSelected,
117+
addSourceArchiveFolder,
115118
);
116119

117120
if (databaseItem) {
@@ -163,6 +166,7 @@ export async function askForGitHubRepo(
163166
* @param cli the CodeQL CLI server
164167
* @param language the language to download. If undefined, the user will be prompted to choose a language.
165168
* @param makeSelected make the new database selected in the databases panel (default: true)
169+
* @param addSourceArchiveFolder whether to add a workspace folder containing the source archive to the workspace
166170
**/
167171
export async function downloadGitHubDatabase(
168172
githubRepo: string,
@@ -173,6 +177,7 @@ export async function downloadGitHubDatabase(
173177
cli?: CodeQLCliServer,
174178
language?: string,
175179
makeSelected = true,
180+
addSourceArchiveFolder = true,
176181
): Promise<DatabaseItem | undefined> {
177182
const nwo = getNwoFromGitHubUrl(githubRepo) || githubRepo;
178183
if (!isValidGitHubNwo(nwo)) {
@@ -218,6 +223,7 @@ export async function downloadGitHubDatabase(
218223
progress,
219224
cli,
220225
makeSelected,
226+
addSourceArchiveFolder,
221227
);
222228
}
223229

@@ -277,6 +283,7 @@ export async function importArchiveDatabase(
277283
* @param nameOverride a name for the database that overrides the default
278284
* @param progress callback to send progress messages to
279285
* @param makeSelected make the new database selected in the databases panel (default: true)
286+
* @param addSourceArchiveFolder whether to add a workspace folder containing the source archive to the workspace
280287
*/
281288
async function databaseArchiveFetcher(
282289
databaseUrl: string,
@@ -287,6 +294,7 @@ async function databaseArchiveFetcher(
287294
progress: ProgressCallback,
288295
cli?: CodeQLCliServer,
289296
makeSelected = true,
297+
addSourceArchiveFolder = true,
290298
): Promise<DatabaseItem> {
291299
progress({
292300
message: "Getting database",
@@ -329,6 +337,9 @@ async function databaseArchiveFetcher(
329337
Uri.file(dbPath),
330338
makeSelected,
331339
nameOverride,
340+
{
341+
addSourceArchiveFolder,
342+
},
332343
);
333344
return item;
334345
} else {

extensions/ql-vscode/src/databases/local-databases-ui.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,13 +329,14 @@ export class DatabaseUI extends DisposableObject {
329329
if (databaseItem === undefined) {
330330
const makeSelected = true;
331331
const nameOverride = "CodeQL Tutorial Database";
332-
const isTutorialDatabase = true;
333332

334333
await this.databaseManager.openDatabase(
335334
uri,
336335
makeSelected,
337336
nameOverride,
338-
isTutorialDatabase,
337+
{
338+
isTutorialDatabase: true,
339+
},
339340
);
340341
}
341342
await this.handleTourDependencies();

extensions/ql-vscode/src/databases/local-databases/database-manager.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,14 @@ function eventFired<T>(
7171
});
7272
}
7373

74+
type OpenDatabaseOptions = {
75+
isTutorialDatabase?: boolean;
76+
/**
77+
* Whether to add a workspace folder containing the source archive to the workspace. Default is true.
78+
*/
79+
addSourceArchiveFolder?: boolean;
80+
};
81+
7482
export class DatabaseManager extends DisposableObject {
7583
private readonly _onDidChangeDatabaseItem = this.push(
7684
new vscode.EventEmitter<DatabaseChangedEvent>(),
@@ -107,14 +115,18 @@ export class DatabaseManager extends DisposableObject {
107115
uri: vscode.Uri,
108116
makeSelected = true,
109117
displayName?: string,
110-
isTutorialDatabase?: boolean,
118+
{
119+
isTutorialDatabase = false,
120+
addSourceArchiveFolder = true,
121+
}: OpenDatabaseOptions = {},
111122
): Promise<DatabaseItem> {
112123
const databaseItem = await this.createDatabaseItem(uri, displayName);
113124

114125
return await this.addExistingDatabaseItem(
115126
databaseItem,
116127
makeSelected,
117128
isTutorialDatabase,
129+
addSourceArchiveFolder,
118130
);
119131
}
120132

@@ -128,6 +140,7 @@ export class DatabaseManager extends DisposableObject {
128140
databaseItem: DatabaseItemImpl,
129141
makeSelected: boolean,
130142
isTutorialDatabase?: boolean,
143+
addSourceArchiveFolder = true,
131144
): Promise<DatabaseItem> {
132145
const existingItem = this.findDatabaseItem(databaseItem.databaseUri);
133146
if (existingItem !== undefined) {
@@ -141,7 +154,9 @@ export class DatabaseManager extends DisposableObject {
141154
if (makeSelected) {
142155
await this.setCurrentDatabaseItem(databaseItem);
143156
}
144-
await this.addDatabaseSourceArchiveFolder(databaseItem);
157+
if (addSourceArchiveFolder) {
158+
await this.addDatabaseSourceArchiveFolder(databaseItem);
159+
}
145160

146161
if (isCodespacesTemplate() && !isTutorialDatabase) {
147162
await this.createSkeletonPacks(databaseItem);

extensions/ql-vscode/src/model-editor/model-editor-view.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,7 @@ export class ModelEditorView extends AbstractWebview<
578578
this.cliServer,
579579
this.databaseItem.language,
580580
makeSelected,
581+
false,
581582
);
582583
if (!addedDatabase) {
583584
void this.app.logger.log("No database chosen");

extensions/ql-vscode/test/vscode-tests/minimal-workspace/local-queries/local-databases.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,7 @@ describe("local databases", () => {
742742
mockDbItem.databaseUri,
743743
makeSelected,
744744
nameOverride,
745-
isTutorialDatabase,
745+
{ isTutorialDatabase },
746746
);
747747

748748
expect(createSkeletonPacksSpy).toBeCalledTimes(0);

0 commit comments

Comments
 (0)