Commit Graph

20 Commits

Author SHA1 Message Date
Charis Kyriakou
b034c31db8 Move progress.ts to /common/vscode/progress.ts 2023-04-28 10:14:55 +00:00
Charis Kyriakou
8500f20c2b Move archive-filesystem-provider.ts to /common/vscode/archive-filesystem-provider.ts 2023-04-28 10:14:55 +00:00
Robert
686d8749d0 Merge pull request #2384 from github/robertbrignull/makeSelected
Fix not setting database as selected if it already exists
2023-04-27 17:19:01 +01:00
Robert
b786b56c70 Fix tests 2023-04-27 16:53:25 +01:00
Robert
92f23d18fb Change default value of makeSelected from false to true 2023-04-27 15:17:01 +01:00
Charis Kyriakou
732c67e6cd Move cli.ts to /codeql-cli/cli.ts 2023-04-27 11:57:07 +00:00
Charis Kyriakou
0941417caf Move local-databases.ts to /databases/local-databases.ts 2023-04-26 13:52:16 +00:00
Nora
5cfb93980e Rename legacyRunner to query-runner (kebab-case) 2023-04-19 14:11:05 +00:00
Nora
f97105ba41 Move queryRunner to query-server/queryRunner 2023-04-19 14:11:05 +00:00
Elena Tanasoiu
6e4124115f Ensure we're selecting database in single rooted workspace
After some testing of the wizard with a single rooted workspace
(`github/code-scanning`) we discovered a general VSCode extension
bug whereby after we download a database, we don't select it.

This isn't an issue in the wizard, but it does affect us as it means
we'll generate the QL pack, download the db for you but then you won't
know that we haven't selected your database.

So let's make sure our flow works for this case by explicitly selecting
the database once it's downloaded.

We've noticed by testing that we need to set the current database item
before we call `addDatabaseSourceArchiveFolder()`. Once that method is
called, the call to `setCurrentDatabaseItem()` is ignored.

We've had to make some changes to the openDatabase() method to select
a database item by default, since most places where we call `openDatabase()`
also immediately select the item.

There is one exception [1] in the test-runner.ts file, where we set the
current database item under special conditions.

For this reason, we've made the behaviour configurable and tried to add
some descriptive naming to the params so that it's easy to understand
what the config is doing.

[1]: 4170e7f7a7/extensions/ql-vscode/src/test-runner.ts (L120-L124)
2023-04-18 15:11:00 +00:00
Elena Tanasoiu
4a8ba1377d Don't offer to create skeleton pack again
When running Create Query in the codespaces-codeql repo, it successfully
creates codeql-custom-queries-xxx as a subfolder of the first workspace
folder, and then adds a database.  After the database gets added, we get
prompted with this message:

```
We've noticed you don't have a CodeQL pack available to analyze this
database. Can we set up a query pack for you?
```

which would try to create another QL pack.

Since we're no longer pushing QL packs as top level folders in the
workspace when we use the new "Create Query" flow, we also need to adapt
the original flow to take into account subfolders.

Just as a reminder, the original flow is:
- Be in the codespace template
- Download a database from GitHub
- The extension will offer to create a QL pack for the database

The new flow:
- Run the "Create Query" command
- Choose a language
- Create a QL pack
- Download a database for it

In the new flow the last step of downloading a database would trigger
the extension to offer to create a QL pack.

Let's fix this by detecting subfolders as well and exiting early.
2023-04-14 09:55:18 +00:00
Elena Tanasoiu
6b26323ee0 Move database Item search methods into skeleton wizard
And the tests for it. We can now re-use the factory from the previous commit.
2023-04-12 09:38:43 +00:00
Elena Tanasoiu
0ff2e83fde Move db mocking into factory file
So we can re-use it.
2023-04-12 09:38:43 +00:00
Elena Tanasoiu
2995b0120d Provide a way to search for database items by name and language
We'll use this to check whether a database for our ql pack already exists.

While there are other methods that search for a database item by URI, we
only have a language chosen by the user and an nwo ("github/codeql").

So let's introduce a way to search for the db based on the information we
have.
2023-04-11 14:59:57 +00:00
Dave Bartolomeo
8c3fbb80b5 Fix test code 2023-03-27 13:20:29 -04:00
Robert
8b9003e845 Convert extensions/ql-vscode/src/local-databases.ts to call typed commands 2023-03-23 11:42:12 +00:00
Robert
408c042b3b Fix remaining imports 2023-03-22 14:49:04 +00:00
Koen Vlaswinkel
dd4df012e9 Remove as unknown as ExtensionContext 2023-02-27 11:59:11 +01:00
Koen Vlaswinkel
2a43ffb49a Add new mockedObject function
This will remove some instances where we're using `as unknown as T` and
replace them by a call to `mockedObject<T>()`. The `mockedObject`
function is a bit more explicit about what it does and has types which
ensure that the methods that are set on the object actually exist.

Unfortunately, we can't fully get rid of `as unknown as T` in the
`mockedObject` function. However, this construct is more localized and
does not need to be used in as many places. If we do enable an ESLint
rule to prevent the use of `as unknown as T`, I would feel comfortable
with disabling the rule for the `mockedObject` function.
2023-02-21 13:01:28 +01:00
Charis Kyriakou
90ba3d4f29 Rename some files around local databases (#2093) 2023-02-20 09:46:10 +00:00