Compare commits

...

891 Commits

Author SHA1 Message Date
Dave Bartolomeo
4546616871 Update changelog
Some checks failed
Release / Release (push) Has been cancelled
Release / Publish to VS Code Marketplace (push) Has been cancelled
Release / Publish to Open VSX Registry (push) Has been cancelled
2024-08-07 11:00:34 -04:00
Dave Bartolomeo
b201c45e2d Merge branch 'main' into v1.14.0 2024-08-06 15:06:47 -04:00
Dave Bartolomeo
3364af5305 Merge pull request #3683 from github/dbartol/docker-fix
Fix docker command
2024-08-06 11:35:23 -04:00
Dave Bartolomeo
d6af6e7c4c Fix docker command 2024-08-06 11:11:34 -04:00
Dave Bartolomeo
f9f454509b v1.14.0 2024-08-06 10:44:42 -04:00
github-actions[bot]
9f0453a80a Bump Node version to v20.14.0 (#3680)
Co-authored-by: github-actions[bot] <github-actions@github.com>
2024-08-05 09:36:55 +02:00
Charis Kyriakou
af2a592e3d Remove support for CodeQL CLI versions older than v2.15.5 (#3681) 2024-08-05 08:36:13 +01:00
dependabot[bot]
a4fcbd093c Bump the storybook group in /extensions/ql-vscode with 13 updates (#3678)
Bumps the storybook group in /extensions/ql-vscode with 13 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.2.6` | `8.2.7` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.2.6` | `8.2.7` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.2.6` | `8.2.7` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.2.6` | `8.2.7` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.2.6` | `8.2.7` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/blocks) | `8.2.6` | `8.2.7` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/deprecated/components) | `8.2.6` | `8.2.7` |
| [@storybook/icons](https://github.com/storybookjs/icons) | `1.2.9` | `1.2.10` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.2.6` | `8.2.7` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.2.6` | `8.2.7` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.2.6` | `8.2.7` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.2.6` | `8.2.7` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.2.6` | `8.2.7` |


Updates `@storybook/addon-a11y` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/addons/interactions)

Updates `@storybook/addon-links` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/addons/links)

Updates `@storybook/blocks` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/lib/blocks)

Updates `@storybook/components` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/deprecated/components)

Updates `@storybook/icons` from 1.2.9 to 1.2.10
- [Release notes](https://github.com/storybookjs/icons/releases)
- [Changelog](https://github.com/storybookjs/icons/blob/main/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/icons/compare/v1.2.9...v1.2.10)

Updates `@storybook/manager-api` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/lib/manager-api)

Updates `@storybook/react` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/renderers/react)

Updates `@storybook/react-vite` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/lib/theming)

Updates `storybook` from 8.2.6 to 8.2.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.7/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/icons"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-02 09:31:28 +01:00
Dave Bartolomeo
f02c007bdb Merge pull request #3677 from github/dbartol/provenance-builtin
Display non-MaD provenance in results view
2024-08-01 10:00:50 -04:00
Dave Bartolomeo
66874823aa Merge branch 'main' into dbartol/provenance-builtin 2024-08-01 09:17:15 -04:00
Koen Vlaswinkel
1a59467707 Merge pull request #3676 from github/koesie10/remove-python-ff
Remove feature flag for Python model editor
2024-08-01 11:43:24 +02:00
Dave Bartolomeo
78383e376c Display non-MaD provenance in results view 2024-07-31 12:20:47 -04:00
Koen Vlaswinkel
32cf05cb4b Update CHANGELOG 2024-07-31 10:17:29 +01:00
Koen Vlaswinkel
1ec47a4eef Remove feature flag for Python model editor 2024-07-31 09:07:23 +01:00
Dave Bartolomeo
4d2f84d599 Merge pull request #3669 from github/dbartol/provenance
Display path provenance information in results view
2024-07-30 16:37:10 -04:00
Dave Bartolomeo
a858b39f26 More PR feedback 2024-07-30 16:12:45 -04:00
Dave Bartolomeo
5d71ce41a8 DEFAULT_USER_SETTINGS 2024-07-30 16:09:27 -04:00
Dave Bartolomeo
76354c4518 Fix PR feedback 2024-07-30 16:02:49 -04:00
Dave Bartolomeo
4e310ce652 Merge remote-tracking branch 'origin/main' into dbartol/provenance 2024-07-29 17:58:46 +00:00
dependabot[bot]
68bfa00707 Bump the storybook group in /extensions/ql-vscode with 12 updates (#3673)
Bumps the storybook group in /extensions/ql-vscode with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.2.5` | `8.2.6` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.2.5` | `8.2.6` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.2.5` | `8.2.6` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.2.5` | `8.2.6` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.2.5` | `8.2.6` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/blocks) | `8.2.5` | `8.2.6` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/deprecated/components) | `8.2.5` | `8.2.6` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.2.5` | `8.2.6` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.2.5` | `8.2.6` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.2.5` | `8.2.6` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.2.5` | `8.2.6` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.2.5` | `8.2.6` |


Updates `@storybook/addon-a11y` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/addons/interactions)

Updates `@storybook/addon-links` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/addons/links)

Updates `@storybook/blocks` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/lib/blocks)

Updates `@storybook/components` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/deprecated/components)

Updates `@storybook/manager-api` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/lib/manager-api)

Updates `@storybook/react` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/renderers/react)

Updates `@storybook/react-vite` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/lib/theming)

Updates `storybook` from 8.2.5 to 8.2.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.6/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Charis Kyriakou <charisk@users.noreply.github.com>
2024-07-26 14:34:46 +01:00
dependabot[bot]
51ef674cc5 Bump the testing-library group in /extensions/ql-vscode with 2 updates (#3674)
Bumps the testing-library group in /extensions/ql-vscode with 2 updates: [@testing-library/dom](https://github.com/testing-library/dom-testing-library) and [@testing-library/jest-dom](https://github.com/testing-library/jest-dom).


Updates `@testing-library/dom` from 10.3.2 to 10.4.0
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v10.3.2...v10.4.0)

Updates `@testing-library/jest-dom` from 6.4.6 to 6.4.8
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.4.6...v6.4.8)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing-library
- dependency-name: "@testing-library/jest-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-26 09:00:38 +01:00
Koen Vlaswinkel
d2612e2dca Merge pull request #3675 from github/github-action/bump-cli
Bump CLI Version to v2.18.1 for integration tests
2024-07-26 09:44:45 +02:00
github-actions[bot]
1db3dda533 Bump CLI version from v2.18.0 to v2.18.1 for integration tests 2024-07-25 17:07:59 +00:00
Peter Stöckli
9c3b0b24c9 Display length of shortest path in MRVA UI (#3671)
* feature: display length of shortest path in MRVA UI #3659

* add entry to changelog

* replace link in changelog + remove test-id
2024-07-25 10:15:22 +01:00
dependabot[bot]
df06c75070 Bump the storybook group across 1 directory with 12 updates (#3670)
Bumps the storybook group with 11 updates in the /extensions/ql-vscode directory:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.1.11` | `8.2.5` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.1.11` | `8.2.5` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.1.11` | `8.2.5` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.1.11` | `8.2.5` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.1.11` | `8.2.5` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/deprecated/components) | `8.1.11` | `8.2.5` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.1.11` | `8.2.5` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.1.11` | `8.2.5` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.1.11` | `8.2.5` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.1.11` | `8.2.5` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.1.11` | `8.2.5` |



Updates `@storybook/addon-a11y` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/addons/interactions)

Updates `@storybook/addon-links` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/addons/links)

Updates `@storybook/blocks` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/lib/blocks)

Updates `@storybook/components` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/deprecated/components)

Updates `@storybook/manager-api` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/lib/manager-api)

Updates `@storybook/react` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/renderers/react)

Updates `@storybook/react-vite` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/lib/theming)

Updates `storybook` from 8.1.11 to 8.2.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.5/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-23 13:51:05 +01:00
dependabot[bot]
b3c44ea317 Bump the storybook group across 1 directory with 12 updates (#3668)
* Bump the storybook group across 1 directory with 12 updates

Bumps the storybook group with 11 updates in the /extensions/ql-vscode directory:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.1.11` | `8.2.4` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.1.11` | `8.2.4` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.1.11` | `8.2.4` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.1.11` | `8.2.4` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.1.11` | `8.2.4` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/deprecated/components) | `8.1.11` | `8.2.4` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.1.11` | `8.2.4` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.1.11` | `8.2.4` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.1.11` | `8.2.4` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.1.11` | `8.2.4` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.1.11` | `8.2.4` |



Updates `@storybook/addon-a11y` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/addons/interactions)

Updates `@storybook/addon-links` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/addons/links)

Updates `@storybook/blocks` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/lib/blocks)

Updates `@storybook/components` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/deprecated/components)

Updates `@storybook/manager-api` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/lib/manager-api)

Updates `@storybook/react` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/renderers/react)

Updates `@storybook/react-vite` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/lib/theming)

Updates `storybook` from 8.1.11 to 8.2.4
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.2.4/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix import of internal storybook type

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Charis Kyriakou <charisk@users.noreply.github.com>
2024-07-23 11:23:03 +01:00
dependabot[bot]
d6673c4ede Bump eslint-plugin-react-hooks in /extensions/ql-vscode (#3666)
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 4.6.0 to 4.6.2.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-hooks
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Charis Kyriakou <charisk@users.noreply.github.com>
2024-07-23 09:49:01 +01:00
Dave Bartolomeo
d68e270e90 Add some basic validation when parsing SARIF
This is roughly equivalent to the validation we had before, when we were only including `runs.0.results`.
2024-07-19 16:46:03 -04:00
Dave Bartolomeo
97b9c43ae1 Display path provenance information in results view 2024-07-18 16:14:24 -04:00
dependabot[bot]
7e00e9cd2f Bump @testing-library/dom (#3665)
Bumps the testing-library group with 1 update in the /extensions/ql-vscode directory: [@testing-library/dom](https://github.com/testing-library/dom-testing-library).


Updates `@testing-library/dom` from 10.3.0 to 10.3.2
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v10.3.0...v10.3.2)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-18 14:21:56 +01:00
Nick Rolfe
459d606751 Merge pull request #3658 from github/nickrolfe/summary-symbols
Allow compatible CLIs to generate summary symbols file
2024-07-12 11:43:33 +01:00
Nick Rolfe
a069ae45fb Allow compatible CLIs to generate summary symbols file
This should be much faster than generating it in the extension.
2024-07-12 10:18:56 +00:00
Dave Bartolomeo
a6225c5edf Basic table layout for path provenance 2024-07-11 12:48:01 -04:00
dependabot[bot]
64d4439815 Bump vscode-jsonrpc from 8.2.0 to 8.2.1 in /extensions/ql-vscode (#3664)
Bumps [vscode-jsonrpc](https://github.com/Microsoft/vscode-languageserver-node/tree/HEAD/jsonrpc) from 8.2.0 to 8.2.1.
- [Release notes](https://github.com/Microsoft/vscode-languageserver-node/releases)
- [Commits](https://github.com/Microsoft/vscode-languageserver-node/commits/release/jsonrpc/8.2.1/jsonrpc)

---
updated-dependencies:
- dependency-name: vscode-jsonrpc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-11 15:58:11 +02:00
github-actions[bot]
b11a9e2c88 Bump CLI version from v2.17.6 to v2.18.0 for integration tests (#3661)
Co-authored-by: github-actions[bot] <github-actions@github.com>
2024-07-11 11:49:58 +02:00
Fotis Koutoulakis
75ab23bbd8 Merge pull request #3656 from github/dependabot/npm_and_yarn/extensions/ql-vscode/testing-library-86bd199b63
Bump @testing-library/dom from 10.2.0 to 10.3.0 in /extensions/ql-vscode in the testing-library group
2024-07-04 16:27:40 +01:00
dependabot[bot]
5bab2421ea Bump @testing-library/dom
Bumps the testing-library group in /extensions/ql-vscode with 1 update: [@testing-library/dom](https://github.com/testing-library/dom-testing-library).


Updates `@testing-library/dom` from 10.2.0 to 10.3.0
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v10.2.0...v10.3.0)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-04 16:14:13 +01:00
Fotis Koutoulakis
d5edbca4e4 Merge pull request #3657 from github/dependabot/npm_and_yarn/extensions/ql-vscode/babel/plugin-transform-modules-commonjs-7.24.7
Bump @babel/plugin-transform-modules-commonjs from 7.24.1 to 7.24.7 in /extensions/ql-vscode
2024-07-04 16:13:47 +01:00
dependabot[bot]
1ee349d2ef Bump @babel/plugin-transform-modules-commonjs in /extensions/ql-vscode
Bumps [@babel/plugin-transform-modules-commonjs](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-modules-commonjs) from 7.24.1 to 7.24.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.7/packages/babel-plugin-transform-modules-commonjs)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-modules-commonjs"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-04 15:49:08 +01:00
Fotis Koutoulakis
79f89c9e4b Merge pull request #3655 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-68ca77b8c2
Bump @storybook/csf from 0.1.9 to 0.1.11 in /extensions/ql-vscode in the storybook group
2024-07-04 15:48:26 +01:00
dependabot[bot]
2fbdefe4f0 Bump @storybook/csf in /extensions/ql-vscode in the storybook group
Bumps the storybook group in /extensions/ql-vscode with 1 update: [@storybook/csf](https://github.com/ComponentDriven/csf).


Updates `@storybook/csf` from 0.1.9 to 0.1.11
- [Release notes](https://github.com/ComponentDriven/csf/releases)
- [Changelog](https://github.com/ComponentDriven/csf/blob/v0.1.11/CHANGELOG.md)
- [Commits](https://github.com/ComponentDriven/csf/compare/v0.1.9...v0.1.11)

---
updated-dependencies:
- dependency-name: "@storybook/csf"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-04 13:51:10 +00:00
Koen Vlaswinkel
01403aeee7 Merge pull request #3654 from github/koesie10/python-type-models
Enable type models for Python in the model editor
2024-07-04 09:35:21 +02:00
Koen Vlaswinkel
9f7f34a87c Merge pull request #3653 from github/koesie10/python-use-simplified-paths-and-endpoint-kinds
Use rich type columns and endpoint kinds for Python model editor
2024-07-04 09:35:09 +02:00
Koen Vlaswinkel
987b92ab1e Enable type models for Python 2024-07-02 16:18:22 +02:00
Koen Vlaswinkel
6fd2579c9c Use simplified paths and endpoint kinds for Python model editor 2024-07-02 15:42:10 +02:00
Nora
c9e1a64d3a Merge pull request #3648 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-8918104ceb
Bump the storybook group in /extensions/ql-vscode with 13 updates
2024-06-28 09:53:27 +02:00
Nora
03f330da52 Add storybook testing library lock file changes 2024-06-28 07:40:31 +00:00
Nora
4f6d72a9ce Merge branch 'main' into dependabot/npm_and_yarn/extensions/ql-vscode/storybook-8918104ceb 2024-06-28 09:37:08 +02:00
Nora
b5d3a612d8 Merge pull request #3651 from github/github-action/bump-cli
Bump CLI Version to v2.17.6 for integration tests
2024-06-28 09:15:20 +02:00
github-actions[bot]
48209e7732 Bump CLI version from v2.17.5 to v2.17.6 for integration tests 2024-06-27 17:39:00 +00:00
dependabot[bot]
9934449ae9 Bump @testing-library/dom (#3649)
Bumps the testing-library group in /extensions/ql-vscode with 1 update: [@testing-library/dom](https://github.com/testing-library/dom-testing-library).


Updates `@testing-library/dom` from 10.1.0 to 10.2.0
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v10.1.0...v10.2.0)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-27 17:00:03 +02:00
dependabot[bot]
fdc4d97f93 Bump @vscode/codicons from 0.0.35 to 0.0.36 in /extensions/ql-vscode (#3650)
Bumps [@vscode/codicons](https://github.com/microsoft/vscode-codicons) from 0.0.35 to 0.0.36.
- [Release notes](https://github.com/microsoft/vscode-codicons/releases)
- [Commits](https://github.com/microsoft/vscode-codicons/compare/0.0.35...0.0.36)

---
updated-dependencies:
- dependency-name: "@vscode/codicons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-27 16:40:50 +02:00
dependabot[bot]
b1ca9418b4 Bump the storybook group in /extensions/ql-vscode with 13 updates
Bumps the storybook group in /extensions/ql-vscode with 13 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.1.10` | `8.1.11` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.1.10` | `8.1.11` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.1.10` | `8.1.11` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.1.10` | `8.1.11` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.1.10` | `8.1.11` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.1.10` | `8.1.11` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.1.10` | `8.1.11` |
| [@storybook/csf](https://github.com/ComponentDriven/csf) | `0.1.8` | `0.1.9` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.1.10` | `8.1.11` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.1.10` | `8.1.11` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.1.10` | `8.1.11` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.1.10` | `8.1.11` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.1.10` | `8.1.11` |


Updates `@storybook/addon-a11y` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/addons/interactions)

Updates `@storybook/addon-links` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/addons/links)

Updates `@storybook/blocks` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/ui/blocks)

Updates `@storybook/components` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/ui/components)

Updates `@storybook/csf` from 0.1.8 to 0.1.9
- [Release notes](https://github.com/ComponentDriven/csf/releases)
- [Changelog](https://github.com/ComponentDriven/csf/blob/v0.1.9/CHANGELOG.md)
- [Commits](https://github.com/ComponentDriven/csf/compare/v0.1.8...v0.1.9)

Updates `@storybook/manager-api` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/lib/manager-api)

Updates `@storybook/react` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/renderers/react)

Updates `@storybook/react-vite` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/lib/theming)

Updates `storybook` from 8.1.10 to 8.1.11
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.11/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/csf"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-27 13:40:12 +00:00
Henry Mercer
7d3a350a28 Merge pull request #3634 from github/dependabot/npm_and_yarn/extensions/ql-vscode/multi-a9f852c250
Bump braces and gulp in /extensions/ql-vscode
2024-06-25 20:14:14 +01:00
Henry Mercer
ca4c511227 Build: Don't try to encode WASM as UTF-8 when copying it 2024-06-25 18:47:34 +01:00
Nora
d4df484acb Merge pull request #3645 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-445e2aa325
Bump the storybook group in /extensions/ql-vscode with 12 updates
2024-06-21 09:26:31 +02:00
Nora
3e1d924110 Merge pull request #3646 from github/dependabot/npm_and_yarn/extensions/ql-vscode/testing-library-f694122557
Bump @testing-library/jest-dom from 6.4.5 to 6.4.6 in /extensions/ql-vscode in the testing-library group
2024-06-21 09:26:06 +02:00
dependabot[bot]
cc4666a614 Bump @testing-library/jest-dom
Bumps the testing-library group in /extensions/ql-vscode with 1 update: [@testing-library/jest-dom](https://github.com/testing-library/jest-dom).


Updates `@testing-library/jest-dom` from 6.4.5 to 6.4.6
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.4.5...v6.4.6)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-20 13:19:50 +00:00
dependabot[bot]
51906bbcee Bump the storybook group in /extensions/ql-vscode with 12 updates
Bumps the storybook group in /extensions/ql-vscode with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.1.8` | `8.1.10` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.1.8` | `8.1.10` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.1.8` | `8.1.10` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.1.8` | `8.1.10` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.1.8` | `8.1.10` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.1.8` | `8.1.10` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.1.8` | `8.1.10` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.1.8` | `8.1.10` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.1.8` | `8.1.10` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.1.8` | `8.1.10` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.1.8` | `8.1.10` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.1.8` | `8.1.10` |


Updates `@storybook/addon-a11y` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/addons/interactions)

Updates `@storybook/addon-links` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/addons/links)

Updates `@storybook/blocks` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/ui/blocks)

Updates `@storybook/components` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/ui/components)

Updates `@storybook/manager-api` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/lib/manager-api)

Updates `@storybook/react` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/renderers/react)

Updates `@storybook/react-vite` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/lib/theming)

Updates `storybook` from 8.1.8 to 8.1.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.10/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-20 13:19:27 +00:00
Robert
fcfa6979e2 Merge pull request #3643 from github/robertbrignull/re-enable-short-paths
Re-enable windows 8.3 paths in tests
2024-06-19 10:20:24 +01:00
Andrew Eisenberg
f0783ed274 Merge pull request #3644 from github/dependabot/npm_and_yarn/extensions/ql-vscode/ws-8.17.1
Bump ws from 8.15.0 to 8.17.1 in /extensions/ql-vscode
2024-06-18 14:33:18 -07:00
dependabot[bot]
fe45e00fb3 Bump ws from 8.15.0 to 8.17.1 in /extensions/ql-vscode
Bumps [ws](https://github.com/websockets/ws) from 8.15.0 to 8.17.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.15.0...8.17.1)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 21:07:21 +00:00
Robert
4a317d33a9 Enable 8.3 paths in unit tests 2024-06-18 10:08:18 +00:00
Robert
ffc7135c1f Revert "Remove short-paths.test.ts"
This reverts commit 10f4b47019.
2024-06-18 09:31:33 +00:00
Nora
c805b48f18 Merge pull request #3640 from github/nora/update-pr-template
Update vscode-codeql PR template
2024-06-17 17:32:50 +02:00
Nora
e1b95c2f7c Merge pull request #3641 from github/nora/update-outdated-readme-links
Update outdated links in VS Code extension README
2024-06-17 16:54:07 +02:00
Nora
481d2f5404 Remove language preference
Co-authored-by: Charis Kyriakou <charisk@users.noreply.github.com>
2024-06-17 09:22:55 +02:00
Nora
15fa23acb4 Fix grammatical issue
Co-authored-by: Charis Kyriakou <charisk@users.noreply.github.com>
2024-06-17 09:22:27 +02:00
Nora
a625d9aabe Update old links 2024-06-14 15:11:47 +00:00
Nora
cd70b19bb3 Add changelog reminder to PR submit guidance 2024-06-14 14:52:58 +00:00
Nora
7a58084df9 Remove checklist but keep a note on the changelog 2024-06-14 14:50:18 +00:00
Nora
916d16126b Merge pull request #3633 from github/github-action/bump-node-version
Bump Node version to v20.9.0
2024-06-14 14:42:54 +02:00
Nora
a5eb915267 Merge pull request #3632 from github/dependabot/npm_and_yarn/extensions/ql-vscode/ts-unused-exports-10.1.0
Bump ts-unused-exports from 10.0.1 to 10.1.0 in /extensions/ql-vscode
2024-06-14 14:42:44 +02:00
dependabot[bot]
a5440ef482 Bump ts-unused-exports from 10.0.1 to 10.1.0 in /extensions/ql-vscode
Bumps [ts-unused-exports](https://github.com/pzavolinsky/ts-unused-exports) from 10.0.1 to 10.1.0.
- [Changelog](https://github.com/pzavolinsky/ts-unused-exports/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pzavolinsky/ts-unused-exports/commits)

---
updated-dependencies:
- dependency-name: ts-unused-exports
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-14 12:26:39 +00:00
Nora
fc86be7687 Merge branch 'main' into github-action/bump-node-version 2024-06-14 12:24:20 +00:00
Nora
f0909a9d67 Merge pull request #3636 from github/github-action/bump-cli
Bump CLI Version to v2.17.5 for integration tests
2024-06-14 14:23:19 +02:00
Nora
40b5b5ba7e Merge pull request #3639 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-f899e8f28b
Bump the storybook group in /extensions/ql-vscode with 12 updates
2024-06-13 15:50:42 +02:00
dependabot[bot]
fa85bcfad6 Bump the storybook group in /extensions/ql-vscode with 12 updates
Bumps the storybook group in /extensions/ql-vscode with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.1.6` | `8.1.8` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.1.6` | `8.1.8` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.1.6` | `8.1.8` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.1.6` | `8.1.8` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.1.6` | `8.1.8` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.1.6` | `8.1.8` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.1.6` | `8.1.8` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.1.6` | `8.1.8` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.1.6` | `8.1.8` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.1.6` | `8.1.8` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.1.6` | `8.1.8` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.1.6` | `8.1.8` |


Updates `@storybook/addon-a11y` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/addons/interactions)

Updates `@storybook/addon-links` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/addons/links)

Updates `@storybook/blocks` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/ui/blocks)

Updates `@storybook/components` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/ui/components)

Updates `@storybook/manager-api` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/lib/manager-api)

Updates `@storybook/react` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/renderers/react)

Updates `@storybook/react-vite` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/lib/theming)

Updates `storybook` from 8.1.6 to 8.1.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.8/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-13 13:36:58 +00:00
Chris Smowton
dd1b054f26 Merge branch 'main' into github-action/bump-cli 2024-06-13 14:33:51 +01:00
Kasper Svendsen
b96cd6c7e1 Merge pull request #3635 from github/kaspersv/clear-pkg-cache-on-dbscheme-changes
Clear query server package cache on dbscheme edits
2024-06-13 13:47:16 +02:00
Kasper Svendsen
b466d2aa36 Merge branch 'main' into kaspersv/clear-pkg-cache-on-dbscheme-changes 2024-06-13 13:34:18 +02:00
Robert
7f6c1ad7f7 Merge pull request #3637 from github/robertbrignull/remove_path_tests
Remove short-paths.test.ts
2024-06-13 12:26:39 +01:00
Robert
10f4b47019 Remove short-paths.test.ts 2024-06-13 11:03:37 +00:00
github-actions[bot]
b31a769fdd Bump CLI version from v2.17.4 to v2.17.5 for integration tests 2024-06-12 17:18:50 +00:00
github-actions[bot]
c4e2f11372 Bump Node version to v20.9.0 2024-06-12 12:25:46 +00:00
Kasper Svendsen
9494d32144 Clear query server package cache on dbscheme edits 2024-06-11 10:55:42 +00:00
dependabot[bot]
8b4f2d2009 Bump braces and gulp in /extensions/ql-vscode
Bumps [braces](https://github.com/micromatch/braces) to 3.0.3 and updates ancestor dependency [gulp](https://github.com/gulpjs/gulp). These dependencies need to be updated together.


Updates `braces` from 3.0.2 to 3.0.3
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

Updates `gulp` from 4.0.2 to 5.0.0
- [Release notes](https://github.com/gulpjs/gulp/releases)
- [Changelog](https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/gulp/compare/v4.0.2...v5.0.0)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
- dependency-name: gulp
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-11 08:48:58 +00:00
Andrew Eisenberg
12555d90c1 Merge pull request #3630 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-a6a5a2e80a
Bump the storybook group in /extensions/ql-vscode with 13 updates
2024-06-06 09:48:18 -07:00
dependabot[bot]
d46e03b4cc Bump the storybook group in /extensions/ql-vscode with 13 updates
Bumps the storybook group in /extensions/ql-vscode with 13 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.1.5` | `8.1.6` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.1.5` | `8.1.6` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.1.5` | `8.1.6` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.1.5` | `8.1.6` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.1.5` | `8.1.6` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.1.5` | `8.1.6` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.1.5` | `8.1.6` |
| [@storybook/csf](https://github.com/ComponentDriven/csf) | `0.1.7` | `0.1.8` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.1.5` | `8.1.6` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.1.5` | `8.1.6` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.1.5` | `8.1.6` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.1.5` | `8.1.6` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.1.5` | `8.1.6` |


Updates `@storybook/addon-a11y` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/addons/interactions)

Updates `@storybook/addon-links` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/addons/links)

Updates `@storybook/blocks` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/ui/blocks)

Updates `@storybook/components` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/ui/components)

Updates `@storybook/csf` from 0.1.7 to 0.1.8
- [Release notes](https://github.com/ComponentDriven/csf/releases)
- [Changelog](https://github.com/ComponentDriven/csf/blob/v0.1.8/CHANGELOG.md)
- [Commits](https://github.com/ComponentDriven/csf/compare/v0.1.7...v0.1.8)

Updates `@storybook/manager-api` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/lib/manager-api)

Updates `@storybook/react` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/renderers/react)

Updates `@storybook/react-vite` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/lib/theming)

Updates `storybook` from 8.1.5 to 8.1.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.6/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/csf"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-06 14:20:38 +00:00
dependabot[bot]
f0e2285122 Bump @testing-library/react (#3631)
Bumps the testing-library group in /extensions/ql-vscode with 1 update: [@testing-library/react](https://github.com/testing-library/react-testing-library).


Updates `@testing-library/react` from 15.0.7 to 16.0.0
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v15.0.7...v16.0.0)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-06 15:16:43 +01:00
Koen Vlaswinkel
f4d0d23170 Merge pull request #3629 from github/github-action/bump-cli
Bump CLI Version to v2.17.4 for integration tests
2024-06-04 10:06:27 +02:00
github-actions[bot]
513fb65560 Bump CLI version from v2.17.3 to v2.17.4 for integration tests 2024-06-03 16:10:31 +00:00
Koen Vlaswinkel
7d353ced9b Merge pull request #3626 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-d4cb5c71ab
Bump the storybook group in /extensions/ql-vscode with 12 updates
2024-05-31 10:09:46 +02:00
dependabot[bot]
be3506d987 Bump the storybook group in /extensions/ql-vscode with 12 updates
Bumps the storybook group in /extensions/ql-vscode with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.1.3` | `8.1.5` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.1.3` | `8.1.5` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.1.3` | `8.1.5` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.1.3` | `8.1.5` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.1.3` | `8.1.5` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.1.3` | `8.1.5` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.1.3` | `8.1.5` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.1.3` | `8.1.5` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.1.3` | `8.1.5` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.1.3` | `8.1.5` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.1.3` | `8.1.5` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.1.3` | `8.1.5` |


Updates `@storybook/addon-a11y` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/addons/interactions)

Updates `@storybook/addon-links` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/addons/links)

Updates `@storybook/blocks` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/ui/blocks)

Updates `@storybook/components` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/ui/components)

Updates `@storybook/manager-api` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/lib/manager-api)

Updates `@storybook/react` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/renderers/react)

Updates `@storybook/react-vite` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/lib/theming)

Updates `storybook` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.5/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-30 14:06:20 +00:00
dependabot[bot]
3fa6304050 Bump @babel/core from 7.24.4 to 7.24.6 in /extensions/ql-vscode (#3628)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.24.4 to 7.24.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.6/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-30 07:03:18 -07:00
dependabot[bot]
bb40e5bcad Bump ts-jest from 29.1.2 to 29.1.4 in /extensions/ql-vscode (#3627)
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.1.2 to 29.1.4.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.1.2...v29.1.4)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-30 07:02:48 -07:00
Koen Vlaswinkel
e2a8ae318b Merge pull request #3625 from github/koesie10/update-test-plan
Update test plan
2024-05-29 11:46:43 +02:00
Koen Vlaswinkel
79867e2f9d Merge pull request #3624 from github/version/bump-to-v1.13.2
Bump version to v1.13.2
2024-05-29 11:46:29 +02:00
Koen Vlaswinkel
1bc13d70ce Update test plan
This fixes the model pack query to account for the new MAD ID in the
`sinkModel` and removes the LLM section.
2024-05-29 11:22:04 +02:00
github-actions[bot]
0bd359997d Bump version to v1.13.2 2024-05-29 09:17:05 +00:00
Koen Vlaswinkel
28a7d1cf34 Merge pull request #3623 from github/v1.13.1
v1.13.1
2024-05-29 11:15:50 +02:00
Koen Vlaswinkel
1572c095ca v1.13.1
Some checks failed
Release / Release (push) Has been cancelled
Release / Publish to VS Code Marketplace (push) Has been cancelled
Release / Publish to Open VSX Registry (push) Has been cancelled
2024-05-29 10:43:56 +02:00
Nick Rolfe
83df05e731 Merge pull request #3622 from github/nickrolfe/eval-log-progress
Report progress for post-evaluation actions
2024-05-28 17:38:56 +01:00
Nick Rolfe
b43b1d4c8e Update changelog for progress reporting on post-evaluation steps 2024-05-28 11:06:00 +00:00
Nick Rolfe
79ff9e0378 Report progress for post-evaluation actions
Generating and parsing log summaries can be quite slow, so we should update the progress window with messages about what's being worked on.
2024-05-28 11:05:34 +00:00
Andrew Eisenberg
d7a82cc686 Merge pull request #3616 from github/aeisenberg/flush-cache-on-db-remove
Fix bug with reimporting test cases
2024-05-23 08:55:23 -07:00
Andrew Eisenberg
39ad5b28c7 Fix typo in comment
Co-authored-by: Koen Vlaswinkel <koesie10@users.noreply.github.com>
2024-05-23 08:43:03 -07:00
Robert
68c159f1fe Merge pull request #3619 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-23a9a17fad
Bump the storybook group in /extensions/ql-vscode with 12 updates
2024-05-23 15:55:29 +01:00
Robert
355a6fc552 Merge pull request #3621 from github/dependabot/npm_and_yarn/extensions/ql-vscode/markdownlint-cli2-formatter-pretty-0.0.6
Bump markdownlint-cli2-formatter-pretty from 0.0.5 to 0.0.6 in /extensions/ql-vscode
2024-05-23 14:52:49 +01:00
dependabot[bot]
6f54bebe35 Bump markdownlint-cli2-formatter-pretty in /extensions/ql-vscode
Bumps [markdownlint-cli2-formatter-pretty](https://github.com/DavidAnson/markdownlint-cli2) from 0.0.5 to 0.0.6.
- [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.0.5...v0.0.6)

---
updated-dependencies:
- dependency-name: markdownlint-cli2-formatter-pretty
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-23 13:40:16 +00:00
dependabot[bot]
bea108a412 Bump the storybook group in /extensions/ql-vscode with 12 updates
Bumps the storybook group in /extensions/ql-vscode with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.1.1` | `8.1.3` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.1.1` | `8.1.3` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.1.1` | `8.1.3` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.1.1` | `8.1.3` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.1.1` | `8.1.3` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.1.1` | `8.1.3` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.1.1` | `8.1.3` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.1.1` | `8.1.3` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.1.1` | `8.1.3` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.1.1` | `8.1.3` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.1.1` | `8.1.3` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.1.1` | `8.1.3` |


Updates `@storybook/addon-a11y` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/addons/interactions)

Updates `@storybook/addon-links` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/addons/links)

Updates `@storybook/blocks` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/ui/blocks)

Updates `@storybook/components` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/ui/components)

Updates `@storybook/manager-api` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/lib/manager-api)

Updates `@storybook/react` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/renderers/react)

Updates `@storybook/react-vite` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/lib/theming)

Updates `storybook` from 8.1.1 to 8.1.3
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.3/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-23 13:39:25 +00:00
Andrew Eisenberg
088d2fa91e Fix failing tests
Also:
- Address comments in PR
- Add changelog note
2024-05-22 23:05:12 +00:00
Andrew Eisenberg
6c92a5b800 Merge remote-tracking branch 'upstream/main' into aeisenberg/flush-cache-on-db-remove 2024-05-22 22:42:54 +00:00
Robert
db0d062443 Merge pull request #3618 from github/robertbrignull/delete-ghec-dr-flag
Remove the enableGhecDr flag
2024-05-22 11:47:11 +01:00
Robert
673ea13af8 Remove the enableGhecDr flag 2024-05-22 10:42:47 +01:00
Koen Vlaswinkel
2208b42485 Merge pull request #3615 from github/github-action/bump-cli
Bump CLI Version to v2.17.3 for integration tests
2024-05-21 10:47:38 +02:00
Andrew Eisenberg
376d6b75d6 Fix bug with reimporting test cases
When re-importing a test database, if the source archive for that
database is not in the workspace, then old source code will be seen when
inspected.

To reproduce:

1. Run a ql test file with a failure (I'm using a javascript DB).
2. Right click and import on the db that sticks around.
3. Change the JS source file for the test.
4. Re-run and still have a failure.
5. Re-import the database
6. Run the query under test
7. Click on a result item
8. **BUG:** The source code is old

The problem is that the source archive cache is not being flushed in
this case. I added a case to flush the source archive when the archive
was imported into the workspace as a folder, but not when the archive is
external.

The fix is to listen for database remove events in the archive
filesystem provider and flush the associated database source
archive.

There is a complication:

The database remove event didn't emit the removed database. This is
because the only place that consumed the event didn't need it.

To get around this, I changed the structure of the events. I added a
new `fullRefresh` boolean. If true, then the original database change
handler will ensure the entire tree is refreshed. If false, only the
selected database.
2024-05-17 23:10:56 +00:00
dependabot[bot]
d8a7dcd7d2 Bump react-dom and @types/react-dom in /extensions/ql-vscode (#3614)
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom). These dependencies needed to be updated together.

Updates `react-dom` from 18.2.0 to 18.3.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v18.3.1/packages/react-dom)

Updates `@types/react-dom` from 18.2.18 to 18.3.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: react-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-17 15:53:59 -07:00
github-actions[bot]
580257f024 Bump CLI version from v2.17.2 to v2.17.3 for integration tests 2024-05-17 17:05:04 +00:00
dependabot[bot]
233cb1cd41 Bump semver from 7.6.0 to 7.6.2 in /extensions/ql-vscode (#3613)
Bumps [semver](https://github.com/npm/node-semver) from 7.6.0 to 7.6.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.0...v7.6.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-16 09:34:12 -07:00
dependabot[bot]
d9fcfa0374 Bump the storybook group in /extensions/ql-vscode with 12 updates (#3612)
Bumps the storybook group in /extensions/ql-vscode with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.0.10` | `8.1.1` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.0.10` | `8.1.1` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.0.10` | `8.1.1` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.0.10` | `8.1.1` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.0.10` | `8.1.1` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.0.10` | `8.1.1` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.0.10` | `8.1.1` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.0.10` | `8.1.1` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.0.10` | `8.1.1` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.0.10` | `8.1.1` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.0.10` | `8.1.1` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.0.10` | `8.1.1` |


Updates `@storybook/addon-a11y` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/addons/interactions)

Updates `@storybook/addon-links` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/addons/links)

Updates `@storybook/blocks` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/ui/blocks)

Updates `@storybook/components` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/ui/components)

Updates `@storybook/manager-api` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/lib/manager-api)

Updates `@storybook/react` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/renderers/react)

Updates `@storybook/react-vite` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/lib/theming)

Updates `storybook` from 8.0.10 to 8.1.1
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.1.1/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-16 09:33:50 -07:00
Ben Ahmady
1dc48b3309 Update links in VS Marketplace README (#3611) 2024-05-15 08:52:15 +00:00
Angela P Wen
2babb0b106 Handle exit and error events for query server child processes (#3610) 2024-05-14 18:48:29 -07:00
Koen Vlaswinkel
247df2e1f9 Merge pull request #3607 from github/koesie10/ghec-dr-variant-analysis
Add GHEC-DR support
2024-05-14 10:40:28 +02:00
Koen Vlaswinkel
ba9007e426 Fix typo in comment
Co-authored-by: Robert <robertbrignull@github.com>
2024-05-14 09:42:04 +02:00
Koen Vlaswinkel
616b613fbd Merge pull request #3608 from github/koesie10/fix-supported-cli-version-warning
Fix incorrect supported CLI version warning
2024-05-13 16:57:50 +02:00
Koen Vlaswinkel
47ae0fe9f5 Fix incorrect supported CLI version warning 2024-05-13 16:44:03 +02:00
Nora
9d6b4e8e5a Merge pull request #3603 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-7db07c6d5e
Bump the storybook group in /extensions/ql-vscode with 13 updates
2024-05-13 16:32:04 +02:00
Nora
5ae70696a8 Merge pull request #3604 from github/dependabot/npm_and_yarn/extensions/ql-vscode/testing-library-66b9683d1a
Bump the testing-library group in /extensions/ql-vscode with 2 updates
2024-05-13 16:30:18 +02:00
dependabot[bot]
712dd525ee Bump the storybook group in /extensions/ql-vscode with 13 updates
Bumps the storybook group in /extensions/ql-vscode with 13 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.0.9` | `8.0.10` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.0.9` | `8.0.10` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.0.9` | `8.0.10` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.0.9` | `8.0.10` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.0.9` | `8.0.10` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.0.9` | `8.0.10` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.0.9` | `8.0.10` |
| [@storybook/csf](https://github.com/ComponentDriven/csf) | `0.1.6` | `0.1.7` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.0.9` | `8.0.10` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.0.9` | `8.0.10` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.0.9` | `8.0.10` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.0.9` | `8.0.10` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.0.9` | `8.0.10` |


Updates `@storybook/addon-a11y` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/addons/interactions)

Updates `@storybook/addon-links` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/addons/links)

Updates `@storybook/blocks` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/ui/blocks)

Updates `@storybook/components` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/ui/components)

Updates `@storybook/csf` from 0.1.6 to 0.1.7
- [Release notes](https://github.com/ComponentDriven/csf/releases)
- [Changelog](https://github.com/ComponentDriven/csf/blob/v0.1.7/CHANGELOG.md)
- [Commits](https://github.com/ComponentDriven/csf/compare/v0.1.6...v0.1.7)

Updates `@storybook/manager-api` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/lib/manager-api)

Updates `@storybook/react` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/renderers/react)

Updates `@storybook/react-vite` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/lib/theming)

Updates `storybook` from 8.0.9 to 8.0.10
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.10/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/csf"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 14:19:37 +00:00
Nora
fdc5645928 Merge pull request #3606 from github/dependabot/npm_and_yarn/extensions/ql-vscode/eslint-plugin-github-4.10.2
Bump eslint-plugin-github from 4.10.1 to 4.10.2 in /extensions/ql-vscode
2024-05-13 16:18:42 +02:00
dependabot[bot]
5c81c0e9bf Bump the testing-library group in /extensions/ql-vscode with 2 updates
Bumps the testing-library group in /extensions/ql-vscode with 2 updates: [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) and [@testing-library/react](https://github.com/testing-library/react-testing-library).


Updates `@testing-library/jest-dom` from 6.4.2 to 6.4.5
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.4.2...v6.4.5)

Updates `@testing-library/react` from 15.0.6 to 15.0.7
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v15.0.6...v15.0.7)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing-library
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 14:17:39 +00:00
dependabot[bot]
0e07e5e3eb Bump eslint-plugin-github from 4.10.1 to 4.10.2 in /extensions/ql-vscode
Bumps [eslint-plugin-github](https://github.com/github/eslint-plugin-github) from 4.10.1 to 4.10.2.
- [Release notes](https://github.com/github/eslint-plugin-github/releases)
- [Commits](https://github.com/github/eslint-plugin-github/compare/v4.10.1...v4.10.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-github
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 14:05:08 +00:00
Koen Vlaswinkel
c90acdb4e1 Merge pull request #3600 from github/github-action/bump-cli
Bump CLI Version to v2.17.2 for integration tests
2024-05-13 13:17:54 +02:00
Koen Vlaswinkel
dad37f202d Merge pull request #3599 from github/koesie10/upgrade-publish-vsce
Use @vscode/vsce when publishing the extension
2024-05-13 13:04:42 +02:00
Koen Vlaswinkel
1f937ad208 Do not import from config in unit tests 2024-05-13 12:15:27 +02:00
Koen Vlaswinkel
086d8e2104 Update prompts to use GHEC-DR URL 2024-05-13 11:19:31 +02:00
Koen Vlaswinkel
c2ddd680c1 Use GHEC-DR URL in Octokit instance 2024-05-13 11:19:31 +02:00
Koen Vlaswinkel
9a14896a4e Use GHE auth provider if GHEC-DR URI is set 2024-05-13 11:19:31 +02:00
Koen Vlaswinkel
871fc0b817 Use GHEC-DR URL in file blob URL 2024-05-13 11:19:31 +02:00
Koen Vlaswinkel
ca092a1623 Use GHEC-DR URL in Actions workflow run URL 2024-05-13 11:19:30 +02:00
Koen Vlaswinkel
529bbe3ffa Handle GHEC-DR repository URLs 2024-05-13 11:19:30 +02:00
Koen Vlaswinkel
31b2d24ca9 Update custom errors to use GHEC-DR URL 2024-05-13 11:19:30 +02:00
github-actions[bot]
f54cace05b Bump CLI version from v2.17.1 to v2.17.2 for integration tests 2024-05-07 11:22:36 +00:00
Koen Vlaswinkel
f773f9f675 Use @vscode/vsce when publishing the extension 2024-05-06 15:31:05 +02:00
dependabot[bot]
67aa216ea1 Bump react and @types/react in /extensions/ql-vscode (#3596)
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) and [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react). These dependencies needed to be updated together.

Updates `react` from 18.2.0 to 18.3.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v18.3.1/packages/react)

Updates `@types/react` from 18.2.43 to 18.3.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: react
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 15:56:40 +01:00
dependabot[bot]
4b67f4dd54 Bump vite from 5.2.6 to 5.2.11 in /extensions/ql-vscode (#3597)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.6 to 5.2.11.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.2.11/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 15:37:22 +01:00
dependabot[bot]
572a8b7828 Bump styled-components from 6.1.8 to 6.1.9 in /extensions/ql-vscode (#3598)
Bumps [styled-components](https://github.com/styled-components/styled-components) from 6.1.8 to 6.1.9.
- [Release notes](https://github.com/styled-components/styled-components/releases)
- [Commits](https://github.com/styled-components/styled-components/compare/v6.1.8...v6.1.9)

---
updated-dependencies:
- dependency-name: styled-components
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 15:36:08 +01:00
dependabot[bot]
b7d6aeda3c Bump @testing-library/react (#3595)
Bumps the testing-library group in /extensions/ql-vscode with 1 update: [@testing-library/react](https://github.com/testing-library/react-testing-library).


Updates `@testing-library/react` from 15.0.5 to 15.0.6
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v15.0.5...v15.0.6)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 15:35:27 +01:00
github-actions[bot]
2da77acd9e Bump CLI version from v2.17.0 to v2.17.1 for integration tests (#3577)
Co-authored-by: github-actions[bot] <github-actions@github.com>
2024-05-02 10:00:37 +00:00
Anders Starcke Henriksen
607a8380cc Merge pull request #3581 from github/dependabot/npm_and_yarn/extensions/ql-vscode/ts-json-schema-generator-2.1.1
Bump ts-json-schema-generator from 2.0.1 to 2.1.1 in /extensions/ql-vscode
2024-05-02 09:19:22 +02:00
Koen Vlaswinkel
f698ac321f Add back ts-node for Gulp 2024-05-01 14:59:02 +02:00
Koen Vlaswinkel
85abd9a1ac Switch from ts-node to vite-node
vite-node seems to have better support for mixed ESM and CJS modules and
makes the scripts work with both kinds of packages without having to
change the project configuration.
2024-05-01 14:50:12 +02:00
Anders Starcke Henriksen
329eba9536 Merge pull request #3592 from github/release-token
Update release with new PAT lifetime.
2024-05-01 14:49:03 +02:00
Anders Starcke Henriksen
733a0328d0 Merge pull request #3594 from github/version/bump-to-v1.13.1
Bump version to v1.13.1
2024-05-01 14:32:42 +02:00
dependabot[bot]
1c7f92b503 Bump ts-json-schema-generator in /extensions/ql-vscode
Bumps [ts-json-schema-generator](https://github.com/vega/ts-json-schema-generator) from 2.0.1 to 2.1.1.
- [Release notes](https://github.com/vega/ts-json-schema-generator/releases)
- [Changelog](https://github.com/vega/ts-json-schema-generator/blob/v2.1.1/CHANGELOG.md)
- [Commits](https://github.com/vega/ts-json-schema-generator/compare/v2.0.1...v2.1.1)

---
updated-dependencies:
- dependency-name: ts-json-schema-generator
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-01 12:13:48 +00:00
github-actions[bot]
884ec21e5a Bump version to v1.13.1 2024-05-01 11:44:41 +00:00
Anders Starcke Henriksen
35c533606f Merge pull request #3593 from github/v1.13.0
v1.13.0
2024-05-01 13:42:53 +02:00
Anders Starcke Henriksen
4adf60a978 v1.13.0
Some checks failed
Release / Release (push) Has been cancelled
Release / Publish to VS Code Marketplace (push) Has been cancelled
Release / Publish to Open VSX Registry (push) Has been cancelled
2024-05-01 10:36:40 +02:00
Koen Vlaswinkel
69775414f0 Merge pull request #3591 from github/koesie10/update-changelog
Add Ruby model editor support to CHANGELOG
2024-05-01 09:54:47 +02:00
Anders Starcke Henriksen
10c74d5d8c Update release with new PAT lifetime. 2024-05-01 09:54:04 +02:00
Koen Vlaswinkel
325f5d6667 Move up changelog entry 2024-05-01 09:42:03 +02:00
Koen Vlaswinkel
e968c226ba Add Ruby model editor support to CHANGELOG 2024-05-01 09:33:22 +02:00
dependabot[bot]
44429c2513 Bump husky from 8.0.3 to 9.0.11 in /extensions/ql-vscode (#3590)
Bumps [husky](https://github.com/typicode/husky) from 8.0.3 to 9.0.11.
- [Release notes](https://github.com/typicode/husky/releases)
- [Commits](https://github.com/typicode/husky/compare/v8.0.3...v9.0.11)

---
updated-dependencies:
- dependency-name: husky
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-30 09:26:20 -07:00
dependabot[bot]
96881f2bf2 Bump the testing-library group in /extensions/ql-vscode with 2 updates (#3589)
Bumps the testing-library group in /extensions/ql-vscode with 2 updates: [@testing-library/dom](https://github.com/testing-library/dom-testing-library) and [@testing-library/react](https://github.com/testing-library/react-testing-library).


Updates `@testing-library/dom` from 10.0.0 to 10.1.0
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v10.0.0...v10.1.0)

Updates `@testing-library/react` from 15.0.4 to 15.0.5
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v15.0.4...v15.0.5)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing-library
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-30 09:25:56 -07:00
dependabot[bot]
06f4e33719 Bump @storybook/csf in /extensions/ql-vscode in the storybook group (#3588)
Bumps the storybook group in /extensions/ql-vscode with 1 update: [@storybook/csf](https://github.com/ComponentDriven/csf).


Updates `@storybook/csf` from 0.1.4 to 0.1.6
- [Release notes](https://github.com/ComponentDriven/csf/releases)
- [Changelog](https://github.com/ComponentDriven/csf/blob/v0.1.6/CHANGELOG.md)
- [Commits](https://github.com/ComponentDriven/csf/compare/v0.1.4...v0.1.6)

---
updated-dependencies:
- dependency-name: "@storybook/csf"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-30 09:25:14 -07:00
Koen Vlaswinkel
570e410e06 Merge pull request #3587 from github/koesie10/upgrade-e2e-tests
Upgrade E2E test dependencies
2024-04-30 17:24:33 +02:00
Koen Vlaswinkel
1d5b4f3fbb Merge pull request #3586 from github/koesie10/fix-e2e-tests
Always use the latest released CodeQL version in E2E tests
2024-04-30 16:30:42 +02:00
Koen Vlaswinkel
0e5b460e67 Upgrade Alpine to 3.19.1 2024-04-30 16:20:19 +02:00
Koen Vlaswinkel
a39f4582e3 Enable Dependabot for E2E docker image 2024-04-30 16:19:13 +02:00
Koen Vlaswinkel
18f12e53c9 Upgrade E2E tests to VS Code v1.88.1 2024-04-30 16:17:51 +02:00
Koen Vlaswinkel
ac8dd9189e Always use the latest released CodeQL version in E2E tests 2024-04-30 16:11:19 +02:00
Koen Vlaswinkel
7d564b50e7 Merge pull request #3584 from github/koesie10/add-ruby-as-supported-model-editor-language
Add Ruby as a fully-supported model editor language
2024-04-30 12:42:52 +02:00
Koen Vlaswinkel
013bf65c0a Merge pull request #3585 from github/koesie10/fix-modeled-method-fs-test
Fix modeled method FS test
2024-04-30 12:42:44 +02:00
Koen Vlaswinkel
bd6862efda Fix modeled method FS test 2024-04-30 11:53:15 +02:00
Koen Vlaswinkel
64f0115070 Add Ruby as a fully-supported model editor language 2024-04-26 17:00:06 +02:00
dependabot[bot]
596049a8cb Bump @testing-library/react (#3580)
Bumps the testing-library group in /extensions/ql-vscode with 1 update: [@testing-library/react](https://github.com/testing-library/react-testing-library).


Updates `@testing-library/react` from 15.0.2 to 15.0.4
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v15.0.2...v15.0.4)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-25 15:00:47 +00:00
dependabot[bot]
58a5a43609 Bump the storybook group in /extensions/ql-vscode with 12 updates (#3579)
Bumps the storybook group in /extensions/ql-vscode with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.0.8` | `8.0.9` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.0.8` | `8.0.9` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.0.8` | `8.0.9` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.0.8` | `8.0.9` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.0.8` | `8.0.9` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.0.8` | `8.0.9` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.0.8` | `8.0.9` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.0.8` | `8.0.9` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.0.8` | `8.0.9` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.0.8` | `8.0.9` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.0.8` | `8.0.9` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.0.8` | `8.0.9` |


Updates `@storybook/addon-a11y` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/addons/interactions)

Updates `@storybook/addon-links` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/addons/links)

Updates `@storybook/blocks` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/ui/blocks)

Updates `@storybook/components` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/ui/components)

Updates `@storybook/manager-api` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/lib/manager-api)

Updates `@storybook/react` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/renderers/react)

Updates `@storybook/react-vite` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/lib/theming)

Updates `storybook` from 8.0.8 to 8.0.9
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.9/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-25 15:46:04 +01:00
dependabot[bot]
67ad9cb6ce Bump nanoid from 5.0.6 to 5.0.7 in /extensions/ql-vscode (#3582)
Bumps [nanoid](https://github.com/ai/nanoid) from 5.0.6 to 5.0.7.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/5.0.6...5.0.7)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-25 14:59:18 +01:00
Robert
29c36584f8 Merge pull request #3576 from github/robertbrignull/disable-llm-proxima
Disable LLM model generation when not using github.com
2024-04-22 16:47:56 +01:00
Robert
e59145372e Disable LLM model generation when not using github.com 2024-04-22 16:28:52 +01:00
Robert
ad17a4f828 Merge pull request #3570 from github/robertbrignull/disable_top1000
Hide system defined lists when enterprise URI is set
2024-04-22 10:12:19 +01:00
dependabot[bot]
f17319a5cf Bump markdownlint-cli2 from 0.12.1 to 0.13.0 in /extensions/ql-vscode (#3571)
Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.12.1 to 0.13.0.
- [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.12.1...v0.13.0)

---
updated-dependencies:
- dependency-name: markdownlint-cli2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-18 13:12:06 -07:00
dependabot[bot]
0d52be1dbf Bump @babel/preset-react from 7.23.3 to 7.24.1 in /extensions/ql-vscode (#3575)
Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.23.3 to 7.24.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.1/packages/babel-preset-react)

---
updated-dependencies:
- dependency-name: "@babel/preset-react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-18 13:11:46 -07:00
dependabot[bot]
13a61094c1 Bump @babel/preset-env from 7.24.0 to 7.24.4 in /extensions/ql-vscode (#3574)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.24.0 to 7.24.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.4/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-18 19:40:48 +00:00
dependabot[bot]
230cdd024c Bump @babel/core from 7.24.0 to 7.24.4 in /extensions/ql-vscode (#3573)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.24.0 to 7.24.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.4/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-18 12:26:36 -07:00
dependabot[bot]
29a47305a9 Bump eslint-plugin-react from 7.33.2 to 7.34.1 in /extensions/ql-vscode (#3572)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.33.2 to 7.34.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/v7.34.1/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.2...v7.34.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-18 12:26:18 -07:00
Robert
26ec371730 move onDidChangeConfiguration to be the last field in VariantAnalysisConfig 2024-04-18 09:59:50 +01:00
Robert
58de4864c0 Pass VariantAnalysisConfig into DbManager to avoid vscode dependency 2024-04-18 09:55:21 +01:00
Robert
17ff592a60 Hide system defined lists when enterprise URI is set 2024-04-17 14:31:14 +01:00
Robert
1c267e4c28 Merge pull request #3569 from github/robertbrignull/ghec_dr_mode
Detect when the github-enterprise.uri setting is set
2024-04-17 11:06:26 +01:00
Robert
2f67ccea56 Cover all cases of URIs and feature flags 2024-04-17 10:53:17 +01:00
Robert
b3fdb3a126 Use endsWith instead of regex 2024-04-17 09:37:53 +01:00
Robert
07ba537590 Make config field use camel-case 2024-04-17 09:37:38 +01:00
Robert
8abde36dcb Detect when the github-enterprise.uri setting is set 2024-04-16 17:18:49 +01:00
dependabot[bot]
27d6a749f8 Bump @floating-ui/react from 0.26.10 to 0.26.12 in /extensions/ql-vscode (#3567)
Bumps [@floating-ui/react](https://github.com/floating-ui/floating-ui/tree/HEAD/packages/react) from 0.26.10 to 0.26.12.
- [Release notes](https://github.com/floating-ui/floating-ui/releases)
- [Changelog](https://github.com/floating-ui/floating-ui/blob/master/packages/react/CHANGELOG.md)
- [Commits](https://github.com/floating-ui/floating-ui/commits/@floating-ui/react@0.26.12/packages/react)

---
updated-dependencies:
- dependency-name: "@floating-ui/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 16:39:37 +01:00
dependabot[bot]
e7af631737 Bump @testing-library/react (#3565)
Bumps the testing-library group in /extensions/ql-vscode with 1 update: [@testing-library/react](https://github.com/testing-library/react-testing-library).


Updates `@testing-library/react` from 15.0.1 to 15.0.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v15.0.1...v15.0.2)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 16:24:37 +01:00
dependabot[bot]
cdd889452a Bump @storybook/csf in /extensions/ql-vscode in the storybook group (#3564)
Bumps the storybook group in /extensions/ql-vscode with 1 update: [@storybook/csf](https://github.com/ComponentDriven/csf).


Updates `@storybook/csf` from 0.1.3 to 0.1.4
- [Release notes](https://github.com/ComponentDriven/csf/releases)
- [Changelog](https://github.com/ComponentDriven/csf/blob/v0.1.4/CHANGELOG.md)
- [Commits](https://github.com/ComponentDriven/csf/compare/v0.1.3...v0.1.4)

---
updated-dependencies:
- dependency-name: "@storybook/csf"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 16:19:11 +01:00
dependabot[bot]
4abaa22f62 Bump ts-json-schema-generator in /extensions/ql-vscode (#3568)
Bumps [ts-json-schema-generator](https://github.com/vega/ts-json-schema-generator) from 1.5.0 to 2.0.1.
- [Release notes](https://github.com/vega/ts-json-schema-generator/releases)
- [Changelog](https://github.com/vega/ts-json-schema-generator/blob/v2.0.1/CHANGELOG.md)
- [Commits](https://github.com/vega/ts-json-schema-generator/compare/v1.5.0...v2.0.1)

---
updated-dependencies:
- dependency-name: ts-json-schema-generator
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 16:12:31 +01:00
dependabot[bot]
df322ce17d Bump applicationinsights from 2.9.4 to 2.9.5 in /extensions/ql-vscode (#3566)
Bumps [applicationinsights](https://github.com/microsoft/ApplicationInsights-node.js) from 2.9.4 to 2.9.5.
- [Release notes](https://github.com/microsoft/ApplicationInsights-node.js/releases)
- [Commits](https://github.com/microsoft/ApplicationInsights-node.js/compare/2.9.4...2.9.5)

---
updated-dependencies:
- dependency-name: applicationinsights
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 15:30:48 +01:00
Charis Kyriakou
0df508d1c6 Remove support for CodeQL CLI versions older than 2.14.6 (#3562) 2024-04-16 15:27:32 +01:00
Charis Kyriakou
2e7586c39f Exclude major version updates for the octokit group in dependabot (#3563)
* Exclude major version updates for the octokit group in dependabot

* Commit unstaged changes 🤦
2024-04-16 14:29:17 +01:00
Charis Kyriakou
f854ab50d5 Move octokit throttling plugin dependency out of dev dependencies (#3561) 2024-04-16 11:52:01 +00:00
Andrew Eisenberg
3cc4005500 Merge pull request #3556 from github/dependabot/npm_and_yarn/extensions/ql-vscode/msw-2.2.13
Bump msw from 2.0.13 to 2.2.13 in /extensions/ql-vscode
2024-04-16 01:24:44 -07:00
Koen Vlaswinkel
0d4a95d08e Merge pull request #3552 from github/koesie10/remove-enable-type-models
Remove `codeQL.model.showTypeModels` config
2024-04-16 10:16:52 +02:00
Koen Vlaswinkel
d67cf4b9f7 Remove codeQL.model.showTypeModels config
This removes the `codeQL.model.showTypeModels` setting. We will now
always show type models in the model editor. This also means that the
"auto-generation mode" needs to change to `models` to ensure that the
type models are actually shown to the user. This is done for Ruby, which
is currently the only language to show type models.
2024-04-15 16:52:27 +02:00
Koen Vlaswinkel
c37bd9969c Merge pull request #3550 from github/koesie10/separate-file
Add auto-model generation mode without separate file
2024-04-15 16:52:13 +02:00
Andrew Eisenberg
1dac41d8ea Merge pull request #3558 from github/dependabot/npm_and_yarn/extensions/ql-vscode/testing-library-0922f3acd1
Bump the testing-library group in /extensions/ql-vscode with 2 updates
2024-04-11 11:14:36 -07:00
dependabot[bot]
48a03bd383 Bump the testing-library group in /extensions/ql-vscode with 2 updates
Bumps the testing-library group in /extensions/ql-vscode with 2 updates: [@testing-library/dom](https://github.com/testing-library/dom-testing-library) and [@testing-library/react](https://github.com/testing-library/react-testing-library).


Updates `@testing-library/dom` from 9.3.4 to 10.0.0
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v9.3.4...v10.0.0)

Updates `@testing-library/react` from 14.2.2 to 15.0.1
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v14.2.2...v15.0.1)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: testing-library
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-11 17:31:55 +00:00
dependabot[bot]
b6897e4faf Bump the storybook group in /extensions/ql-vscode with 12 updates (#3557)
Bumps the storybook group in /extensions/ql-vscode with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.0.5` | `8.0.8` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.0.5` | `8.0.8` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.0.5` | `8.0.8` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.0.5` | `8.0.8` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.0.5` | `8.0.8` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.0.5` | `8.0.8` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.0.5` | `8.0.8` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.0.5` | `8.0.8` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.0.5` | `8.0.8` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.0.5` | `8.0.8` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.0.5` | `8.0.8` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.0.5` | `8.0.8` |


Updates `@storybook/addon-a11y` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/addons/interactions)

Updates `@storybook/addon-links` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/addons/links)

Updates `@storybook/blocks` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/ui/blocks)

Updates `@storybook/components` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/ui/components)

Updates `@storybook/manager-api` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/lib/manager-api)

Updates `@storybook/react` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/renderers/react)

Updates `@storybook/react-vite` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/lib/theming)

Updates `storybook` from 8.0.5 to 8.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.8/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-11 10:30:00 -07:00
dependabot[bot]
d20a1eb61b Bump ts-jest from 29.1.1 to 29.1.2 in /extensions/ql-vscode (#3555)
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.1.1 to 29.1.2.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.1.1...v29.1.2)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-11 10:05:22 -07:00
dependabot[bot]
8ef3ae0ff5 Bump msw from 2.0.13 to 2.2.13 in /extensions/ql-vscode
Bumps [msw](https://github.com/mswjs/msw) from 2.0.13 to 2.2.13.
- [Release notes](https://github.com/mswjs/msw/releases)
- [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mswjs/msw/compare/v2.0.13...v2.2.13)

---
updated-dependencies:
- dependency-name: msw
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-11 13:40:56 +00:00
Koen Vlaswinkel
c7a048b0dc Merge pull request #3548 from github/koesie10/remove-access-path-suggestions-ff
Remove `codeQL.model.enableAccessPathSuggestions` config
2024-04-11 14:29:50 +02:00
Nora
9026076635 Merge pull request #3547 from github/version/bump-to-v1.12.6
Bump version to v1.12.6
2024-04-10 17:16:19 +02:00
Shati Patel
135dc7084a Remove rogue semmle link (#3549) 2024-04-10 15:05:20 +00:00
Koen Vlaswinkel
8c784d8391 Merge pull request #3543 from github/koesie10/pack-name-config
Add `codeQL.model.packName` setting
2024-04-10 17:03:36 +02:00
Koen Vlaswinkel
fed30b6fed Add auto-model generation mode without separate file 2024-04-10 16:46:45 +02:00
Koen Vlaswinkel
232d4c3f41 Remove unnecessary access path progress for unsupported languages 2024-04-10 16:05:56 +02:00
Koen Vlaswinkel
acb6b8b490 Remove enableAccessPathSuggestions config
Access path suggestions will now be enabled for all languages which
support it (which is currently only Ruby).
2024-04-10 15:46:29 +02:00
Koen Vlaswinkel
3f4ed48787 Trim whitespace and slashes in pack names 2024-04-10 15:08:35 +02:00
github-actions[bot]
e1d9aa813d Bump version to v1.12.6 2024-04-09 12:29:43 +00:00
Nora
8a3a6d7e7e Merge pull request #3546 from github/v1.12.5
v1.12.5
2024-04-09 14:27:59 +02:00
Nora
5b89b9608f Update changelog
Some checks failed
Release / Release (push) Has been cancelled
Release / Publish to VS Code Marketplace (push) Has been cancelled
Release / Publish to Open VSX Registry (push) Has been cancelled
2024-04-09 09:08:47 +00:00
Nora
999c73d05d Update version number in changelog 2024-04-09 08:54:07 +00:00
Charis Kyriakou
070df13947 Rename vscode-app -> extension-app file to match convention (#3545) 2024-04-08 16:11:22 +01:00
Koen Vlaswinkel
0c5b39945c Merge pull request #3544 from github/koesie10/python-parsing-unit-tests
Add unit tests for Python argument options
2024-04-08 16:36:40 +02:00
Koen Vlaswinkel
8e231d7b1d Add unit tests for Python argument options 2024-04-08 14:49:09 +02:00
Koen Vlaswinkel
bf9bfb13b7 Add codeQL.model.packName setting 2024-04-08 14:42:47 +02:00
Koen Vlaswinkel
4dc126d56d Merge pull request #3539 from github/koesie10/pack-location-config
Add `codeQL.model.packLocation` setting
2024-04-08 14:11:46 +02:00
Koen Vlaswinkel
9e729ba054 Merge pull request #3540 from github/koesie10/python-model-editor-args
Improve support for Python arguments
2024-04-08 13:59:45 +02:00
Koen Vlaswinkel
6146d7d78a Fix numbering in comment 2024-04-08 13:58:13 +02:00
Charis Kyriakou
6d8de1b3b8 Remove mocking of modeling events (#3542) 2024-04-08 11:19:02 +01:00
Nora
24e08f768c Merge pull request #3534 from github/dependabot/npm_and_yarn/extensions/ql-vscode/floating-ui/react-0.26.10
Bump @floating-ui/react from 0.26.9 to 0.26.10 in /extensions/ql-vscode
2024-04-08 10:35:52 +02:00
Nora
62e051b3d1 Merge pull request #3535 from github/dependabot/npm_and_yarn/extensions/ql-vscode/github/markdownlint-github-0.6.2
Bump @github/markdownlint-github from 0.6.0 to 0.6.2 in /extensions/ql-vscode
2024-04-08 10:16:20 +02:00
Koen Vlaswinkel
b6931dd79a Merge pull request #3541 from github/koesie10/upgrade-ts-eslint
Upgrade typescript-eslint to v7
2024-04-05 16:49:52 +02:00
Koen Vlaswinkel
70009cdc32 Upgrade typescript-eslint to v7 2024-04-05 16:21:16 +02:00
Koen Vlaswinkel
b3276f5cf5 Merge pull request #3538 from github/github-action/bump-node-version
Bump Node version to v18.18.2
2024-04-05 16:15:54 +02:00
Koen Vlaswinkel
1e3cb0772e Improve support for Python arguments 2024-04-05 15:39:44 +02:00
Koen Vlaswinkel
5fbd912abd Add codeQL.model.packLocation setting
This adds the `codeQL.model.packLocation` setting, which allows users to
specify the location of the CodeQL extension pack. This setting replaces
the `codeQL.model.extensionsDirectory` setting, which has been removed.

The pack location supports variable substitutions and supports both
absolute and relative paths. The default value is
`.github/codeql/extensions/${name}-${language}` which matches the
previous defaults.
2024-04-05 15:04:29 +02:00
github-actions[bot]
03c8748981 Bump Node version to v18.18.2 2024-04-05 12:25:06 +00:00
Koen Vlaswinkel
351bc648ef Merge pull request #3530 from github/koesie10/config-template
Add helper for substituting config variables
2024-04-05 11:15:33 +02:00
dependabot[bot]
8ccca1381a Bump eslint-plugin-jest-dom from 5.1.0 to 5.2.0 in /extensions/ql-vscode (#3536)
Bumps [eslint-plugin-jest-dom](https://github.com/testing-library/eslint-plugin-jest-dom) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/testing-library/eslint-plugin-jest-dom/releases)
- [Commits](https://github.com/testing-library/eslint-plugin-jest-dom/compare/v5.1.0...v5.2.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest-dom
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-04 13:28:39 -07:00
dependabot[bot]
85953ec9c3 Bump d3 from 7.8.5 to 7.9.0 in /extensions/ql-vscode (#3533)
Bumps [d3](https://github.com/d3/d3) from 7.8.5 to 7.9.0.
- [Release notes](https://github.com/d3/d3/releases)
- [Changelog](https://github.com/d3/d3/blob/main/CHANGES.md)
- [Commits](https://github.com/d3/d3/compare/v7.8.5...v7.9.0)

---
updated-dependencies:
- dependency-name: d3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-04 11:07:16 -07:00
github-actions[bot]
4a303fa48d Bump CLI version from v2.16.6 to v2.17.0 for integration tests (#3537)
Co-authored-by: github-actions[bot] <github-actions@github.com>
2024-04-04 15:53:15 +00:00
dependabot[bot]
48e66cbe25 Bump @github/markdownlint-github in /extensions/ql-vscode
Bumps [@github/markdownlint-github](https://github.com/github/markdownlint-github) from 0.6.0 to 0.6.2.
- [Release notes](https://github.com/github/markdownlint-github/releases)
- [Commits](https://github.com/github/markdownlint-github/compare/0.6.0...v0.6.2)

---
updated-dependencies:
- dependency-name: "@github/markdownlint-github"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-04 13:56:17 +00:00
dependabot[bot]
8787fcdd96 Bump @floating-ui/react from 0.26.9 to 0.26.10 in /extensions/ql-vscode
Bumps [@floating-ui/react](https://github.com/floating-ui/floating-ui/tree/HEAD/packages/react) from 0.26.9 to 0.26.10.
- [Release notes](https://github.com/floating-ui/floating-ui/releases)
- [Changelog](https://github.com/floating-ui/floating-ui/blob/master/packages/react/CHANGELOG.md)
- [Commits](https://github.com/floating-ui/floating-ui/commits/@floating-ui/react@0.26.10/packages/react)

---
updated-dependencies:
- dependency-name: "@floating-ui/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-04 13:56:05 +00:00
Nora
20cc5ad988 Merge pull request #3531 from github/dependabot/npm_and_yarn/extensions/ql-vscode/vite-5.2.6
Bump vite from 5.2.0 to 5.2.6 in /extensions/ql-vscode
2024-04-04 10:34:30 +02:00
dependabot[bot]
ecae6bdd99 Bump vite from 5.2.0 to 5.2.6 in /extensions/ql-vscode
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.2.0 to 5.2.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.2.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 16:47:45 +00:00
Andrew Eisenberg
00c0e70626 Merge pull request #3527 from aeisenberg/aeisenberg/fix-qlpack-schema
Fix the qlpack json schema
2024-04-03 09:46:11 -07:00
Koen Vlaswinkel
8cb2b34992 Add helper for substituting config variables 2024-04-03 14:42:31 +02:00
Robert
7da3740828 Merge pull request #3517 from github/robertbrignull/fix-token-alerts
Mark progress bars as cancellable where it appears we are respecting the token
2024-04-03 11:30:30 +01:00
Andrew Eisenberg
44c3c29857 Update changelog 2024-04-03 03:21:25 +00:00
Andrew Eisenberg
e6ebcf4245 Fix the qlpack json schema
This schema was incorrectly tagging `defaultSuite` properties that
aren't arrays as errors.

I think there are more, similar errors in this schema, but I only fixed
this one so that I can get `github/semmle-code` working with test
discovery.
2024-04-02 20:21:21 -07:00
Robert
4e43a07fb5 Merge branch 'main' into robertbrignull/fix-token-alerts 2024-04-02 17:27:53 +01:00
Charis Kyriakou
3508dc6d8c Tidy up some functions in the model evaluator (#3529)
* Rename model evaluator's updateVariantAnalysis -> setVariantAnalysis

* Merge updateRepoResults and updateReposResults into single setReposResults function
2024-04-02 12:32:50 +01:00
Koen Vlaswinkel
ff6f6cdf8a Merge pull request #3515 from github/koesie10/tee-logger-file-handle
Use file handle in TeeLogger
2024-04-02 10:02:41 +02:00
Robert
a5239fbede Merge pull request #3458 from github/robertbrignull/database-prompting
Refactor database-fetcher.ts into a class and simplify
2024-03-28 18:05:54 +00:00
Robert
7d259a9322 Fix dodgy imports 2024-03-28 17:51:22 +00:00
Koen Vlaswinkel
6f7b7cf84f Merge pull request #3525 from github/dependabot/npm_and_yarn/extensions/ql-vscode/types/semver-7.5.8
Bump @types/semver from 7.5.6 to 7.5.8 in /extensions/ql-vscode
2024-03-28 14:57:58 +01:00
Koen Vlaswinkel
c6865de312 Merge pull request #3526 from github/dependabot/npm_and_yarn/extensions/ql-vscode/express-4.19.2
Bump express from 4.18.2 to 4.19.2 in /extensions/ql-vscode
2024-03-28 14:57:18 +01:00
dependabot[bot]
133d5899af Bump @types/semver from 7.5.6 to 7.5.8 in /extensions/ql-vscode
Bumps [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) from 7.5.6 to 7.5.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

---
updated-dependencies:
- dependency-name: "@types/semver"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-28 13:43:46 +00:00
dependabot[bot]
8d7d469803 Bump express from 4.18.2 to 4.19.2 in /extensions/ql-vscode
Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-28 13:43:32 +00:00
Koen Vlaswinkel
7575beac6b Merge pull request #3524 from github/dependabot/npm_and_yarn/extensions/ql-vscode/lint-staged-15.2.2
Bump lint-staged from 15.2.0 to 15.2.2 in /extensions/ql-vscode
2024-03-28 14:43:09 +01:00
Koen Vlaswinkel
9e5d0ae7c2 Merge pull request #3522 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-5df8c90cc2
Bump the storybook group in /extensions/ql-vscode with 12 updates
2024-03-28 14:42:31 +01:00
dependabot[bot]
ae6b9df9e7 Bump lint-staged from 15.2.0 to 15.2.2 in /extensions/ql-vscode
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 15.2.0 to 15.2.2.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/okonet/lint-staged/compare/v15.2.0...v15.2.2)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-28 13:29:17 +00:00
dependabot[bot]
5ff353962f Bump the storybook group in /extensions/ql-vscode with 12 updates
Bumps the storybook group in /extensions/ql-vscode with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `8.0.2` | `8.0.5` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `8.0.2` | `8.0.5` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `8.0.2` | `8.0.5` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `8.0.2` | `8.0.5` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `8.0.2` | `8.0.5` |
| [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `8.0.2` | `8.0.5` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `8.0.2` | `8.0.5` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `8.0.2` | `8.0.5` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `8.0.2` | `8.0.5` |
| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `8.0.2` | `8.0.5` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `8.0.2` | `8.0.5` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `8.0.2` | `8.0.5` |


Updates `@storybook/addon-a11y` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/addons/a11y)

Updates `@storybook/addon-actions` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/addons/actions)

Updates `@storybook/addon-essentials` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/addons/essentials)

Updates `@storybook/addon-interactions` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/addons/interactions)

Updates `@storybook/addon-links` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/addons/links)

Updates `@storybook/blocks` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/ui/blocks)

Updates `@storybook/components` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/ui/components)

Updates `@storybook/manager-api` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/lib/manager-api)

Updates `@storybook/react` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/renderers/react)

Updates `@storybook/react-vite` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/frameworks/react-vite)

Updates `@storybook/theming` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/lib/theming)

Updates `storybook` from 8.0.2 to 8.0.5
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.5/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/blocks"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/react-vite"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-28 13:28:32 +00:00
Robert
3cae3ccc3c Merge branch 'main' into robertbrignull/database-prompting 2024-03-28 13:12:00 +00:00
Shati Patel
7a41d9c605 Add unit test for createModeledMethodKey (#3521) 2024-03-28 11:32:34 +00:00
Robert
d3476259b3 Unexport ProgressTask 2024-03-28 11:07:57 +00:00
Robert
28bf345ea8 Make trim cache not cancellable 2024-03-28 10:58:42 +00:00
Robert
e23d4a9d9f Make restarting the query server not cancellable, because in practice it wasn't 2024-03-28 10:51:00 +00:00
Robert
47a5993333 Make clearCacheInDatabase not take a cancellation token 2024-03-28 10:45:17 +00:00
Shati Patel
45e20f405b Link from alerts indicator to model alerts view (#3520) 2024-03-28 10:31:29 +00:00
Shati Patel
fcf74b337f Refactor: extract function for canonicalising modeled methods (#3518) 2024-03-27 14:40:57 +00:00
Shati Patel
c84fa538ba Fire an event when clicking the "model alerts indicator" button (#3516) 2024-03-27 12:47:22 +00:00
Shati Patel
317d3b3c0e Fix "View" link in model alerts view (#3519) 2024-03-27 12:16:09 +00:00
Koen Vlaswinkel
e52a08db4d Safely close file handle in all cases 2024-03-27 10:46:56 +01:00
Koen Vlaswinkel
139c4555d9 Use Disposable type instead of isDisposable function 2024-03-27 10:43:31 +01:00
Shati Patel
a502e52d37 Add "view" button in model alerts view (#3514) 2024-03-26 17:51:37 +00:00
Robert
6b0f7e86fa Mark progress bars as cancellable where it appears we are respecting the token 2024-03-26 17:05:22 +00:00
Andrew Eisenberg
5d45a114be Merge pull request #3510 from github/aeisenberg/flush-archive-files
Flush archive file systems when removed
2024-03-26 08:11:36 -07:00
Koen Vlaswinkel
b53b33e3b6 Use file handle in TeeLogger
This switches the `TeeLogger` from using the `appendFile` function to
manually opening and closing a file handle and calling `appendFile` on
the file handle. This results in a more efficient implementation as the
file handle is only opened once and closed once, instead of being
opened and closed for every log message. This should result in less
"too many open files" errors.
2024-03-26 15:58:44 +01:00
Shati Patel
ccd53133a9 Use wider type for "reveal in model editor" (#3512) 2024-03-26 13:54:42 +00:00
Koen Vlaswinkel
38e862c1e0 Merge pull request #3513 from github/github-action/bump-cli
Bump CLI Version to v2.16.6 for integration tests
2024-03-26 14:12:44 +01:00
Koen Vlaswinkel
8de85453ec Merge pull request #3511 from github/koesie10/update-kinds
Update supported sink and source kinds in the model editor
2024-03-26 13:54:16 +01:00
github-actions[bot]
6d535ab0ad Bump CLI version from v2.16.5 to v2.16.6 for integration tests 2024-03-26 12:24:52 +00:00
Koen Vlaswinkel
61fa841784 Update CHANGELOG 2024-03-26 12:20:45 +01:00
Koen Vlaswinkel
b3c83d175a Update supported sink and source kinds 2024-03-26 12:09:51 +01:00
Koen Vlaswinkel
bd57005832 Split Java and C# model editor languages 2024-03-26 11:55:20 +01:00
Andrew Eisenberg
e939750822 Flush archive file systems when removed
This change will remove a file system archive from the cache when the associated folder is removed from the workspace.

This avoids the following bug:

1. Import a database and add its source folder
2. Remove the database (source folder is removed as well automatically).
3. Change the source code and recreate the database
4. Reimport the database and source folder
5. BUG: You see the original source folder, not the new source folder
2024-03-25 16:29:02 -07:00
Charis Kyriakou
21c33b762c Added filtering and sorting in the model alerts view (#3509) 2024-03-25 17:18:09 +00:00
Charis Kyriakou
8b6a9352f6 Update model alert processing to track repo results (#3508) 2024-03-25 12:15:16 +00:00
Charis Kyriakou
dea68e928a Extract re-usable SearchBox component (#3507) 2024-03-25 10:34:23 +00:00
Charis Kyriakou
a6b3d38939 Re-use setRepoResults instead of having a setReposResult message (#3506) 2024-03-22 16:01:02 +00:00
Koen Vlaswinkel
1739af4013 Merge pull request #3505 from github/koesie10/fix-python-model-editor
Fix detection of Python instance methods
2024-03-22 15:39:58 +01:00
Charis Kyriakou
cbc6b73759 Wire up processing model evaluation run results and showing alerts (#3503) 2024-03-22 14:33:36 +00:00
Koen Vlaswinkel
5c43018692 Merge pull request #3504 from github/koesie10/downgrade-typescript-eslint
Downgrade `@typescript-eslint/eslint-plugin` to v6
2024-03-22 13:10:03 +01:00
Koen Vlaswinkel
895673188f Fix detection of Python instance methods 2024-03-22 13:09:21 +01:00
Koen Vlaswinkel
38327c7b7f Downgrade @typescript-eslint/eslint-plugin to v6
Version 7 of `@typescript-eslint` is not compatible with Node 18.17 and
requires Node 18.18+ or Node 20. The latest minor/patch version of v7
started enforcing this requirement, but this was already part of the
breaking changes for v7.
2024-03-22 12:21:32 +01:00
Koen Vlaswinkel
161fe3d5a7 Merge pull request #3502 from github/dependabot/npm_and_yarn/extensions/ql-vscode/vscode/debugprotocol-1.65.0
Bump @vscode/debugprotocol from 1.64.0 to 1.65.0 in /extensions/ql-vscode
2024-03-21 14:48:18 +01:00
Koen Vlaswinkel
b99caf7bc1 Merge pull request #3499 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-e497c5f385
Bump the storybook group in /extensions/ql-vscode with 1 update
2024-03-21 14:47:21 +01:00
Koen Vlaswinkel
bd7d8ddaf0 Merge pull request #3501 from github/dependabot/npm_and_yarn/extensions/ql-vscode/typescript-eslint-09a1cc5d51
Bump the typescript-eslint group in /extensions/ql-vscode with 1 update
2024-03-21 14:47:05 +01:00
Koen Vlaswinkel
5c0ecd4041 Merge pull request #3500 from github/dependabot/npm_and_yarn/extensions/ql-vscode/testing-library-79d2cbd4c7
Bump the testing-library group in /extensions/ql-vscode with 1 update
2024-03-21 14:46:43 +01:00
dependabot[bot]
bfdb04bf69 Bump @vscode/debugprotocol in /extensions/ql-vscode
Bumps [@vscode/debugprotocol](https://github.com/microsoft/vscode-debugadapter-node) from 1.64.0 to 1.65.0.
- [Commits](https://github.com/microsoft/vscode-debugadapter-node/compare/v1.64.0...v1.65.0)

---
updated-dependencies:
- dependency-name: "@vscode/debugprotocol"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-21 13:33:52 +00:00
dependabot[bot]
c8f9381af2 Bump the typescript-eslint group in /extensions/ql-vscode with 1 update
Bumps the typescript-eslint group in /extensions/ql-vscode with 1 update: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin).


Updates `@typescript-eslint/eslint-plugin` from 7.2.0 to 7.3.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.3.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: typescript-eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-21 13:33:38 +00:00
dependabot[bot]
189a460621 Bump the testing-library group in /extensions/ql-vscode with 1 update
Bumps the testing-library group in /extensions/ql-vscode with 1 update: [@testing-library/react](https://github.com/testing-library/react-testing-library).


Updates `@testing-library/react` from 14.2.1 to 14.2.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v14.2.1...v14.2.2)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing-library
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-21 13:33:15 +00:00
dependabot[bot]
79967b8aed Bump the storybook group in /extensions/ql-vscode with 1 update
Bumps the storybook group in /extensions/ql-vscode with 1 update: [@storybook/csf](https://github.com/ComponentDriven/csf).


Updates `@storybook/csf` from 0.1.2 to 0.1.3
- [Release notes](https://github.com/ComponentDriven/csf/releases)
- [Changelog](https://github.com/ComponentDriven/csf/blob/v0.1.3/CHANGELOG.md)
- [Commits](https://github.com/ComponentDriven/csf/compare/v0.1.2...v0.1.3)

---
updated-dependencies:
- dependency-name: "@storybook/csf"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-21 13:32:57 +00:00
Arthur Baars
cdacde3121 Merge pull request #3498 from github/github-action/bump-cli
Bump CLI Version to v2.16.5 for integration tests
2024-03-21 14:29:09 +01:00
github-actions[bot]
219840200c Bump CLI version from v2.16.4 to v2.16.5 for integration tests 2024-03-21 12:36:34 +00:00
Charis Kyriakou
175907d39c Add React components for showing model alert results (#3495) 2024-03-20 15:00:33 +00:00
Charis Kyriakou
a8a63a4633 Remove repoStates state tracking from model evaluation (#3496) 2024-03-20 14:59:58 +00:00
Shati Patel
83b0614162 Fix code scanning alert about duplicate command usage (#3497) 2024-03-20 14:37:45 +00:00
Koen Vlaswinkel
9e1ca91676 Merge pull request #3480 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook-ea1bb043e9
Bump the storybook group in /extensions/ql-vscode with 11 updates
2024-03-20 14:50:38 +01:00
Charis Kyriakou
6c3b0b5bb1 Move AnalysisAlert mock creation to a factory module (#3493) 2024-03-20 12:03:06 +00:00
Robert
e7d2a59756 Merge pull request #3478 from github/robertbrignull/token-query
Simplify query now we've deleted withInheritedProgress
2024-03-20 11:38:42 +00:00
Koen Vlaswinkel
8c3d3b62f5 Move @storybook/icons to devDependencies 2024-03-20 12:28:47 +01:00
Koen Vlaswinkel
c110fd3e0b Switch from Webpack to Vite for Storybook
This simplifies the setup and makes it more similar to the "real"
extension setup since it also uses ESBuild (which is also used by Vite).
2024-03-20 12:26:59 +01:00
Koen Vlaswinkel
47cdd109a4 Merge pull request #3494 from github/version/bump-to-v1.12.5
Bump version to v1.12.5
2024-03-20 12:13:49 +01:00
Koen Vlaswinkel
c553b1cb1d Run storybook migrate mdx-to-csf 2024-03-20 12:08:36 +01:00
Koen Vlaswinkel
ee4b13c9e9 Fix deprecation warning 2024-03-20 12:06:08 +01:00
github-actions[bot]
1982ad45b8 Bump version to v1.12.5 2024-03-20 10:54:17 +00:00
Koen Vlaswinkel
fb77d628f1 Merge pull request #3492 from github/v1.12.4
v1.12.4
2024-03-20 11:52:56 +01:00
Shati Patel
36236680a4 Add model alerts stats to the view (#3481) 2024-03-20 10:14:39 +00:00
Koen Vlaswinkel
876af669cb v1.12.4
Some checks failed
Release / Release (push) Has been cancelled
Release / Publish to VS Code Marketplace (push) Has been cancelled
Release / Publish to Open VSX Registry (push) Has been cancelled
2024-03-20 10:28:24 +01:00
Charis Kyriakou
3519139e68 Update MethodName component to receive specific props (#3491) 2024-03-20 09:03:13 +00:00
Charis Kyriakou
724370fb40 Fix ModelAlerts view stories (#3490) 2024-03-19 16:07:39 +00:00
Andrew Eisenberg
4deae2f79d Merge pull request #3486 from github/aeisenberg/ignore-missing-database
Three minor improvements to `testproj` import
2024-03-18 12:47:43 -07:00
Charis Kyriakou
3f817b3c0f Don't show notification after local query cancellation (#3489)
* Don't show notification after local query cancellation

* Update CHANGELOG
2024-03-18 15:57:21 +00:00
Charis Kyriakou
2d1c2349f8 Add 'stop evaluation' action to Model Alerts view (#3487) 2024-03-18 15:41:33 +00:00
Charis Kyriakou
46efb7c971 Center align model evaluation run link (#3488) 2024-03-18 13:56:51 +00:00
Charis Kyriakou
79d4e8cb78 Wire up variant analysis updates to Model Alerts view (#3485) 2024-03-18 11:35:45 +00:00
Andrew Eisenberg
31cfaebb59 Ensure database sources are zipped on re-import 2024-03-17 11:51:58 -07:00
Andrew Eisenberg
fe957db17a When importing from a directory, check for testproj
Use the testproj style import when using the folder icon to import a
database. This means that if the database directory ends with `testproj`
copy the database into workspace storage and make it available for
re-importing when the origin database changes.
2024-03-17 11:27:35 -07:00
Andrew Eisenberg
d57255152c Safely check for out of date databases
When checking to re-import test databases, if the target database is
missing or otherwise unavailable, avoid the check and just continue.

This avoids a bug where a user would delete a test database and there
would be an error when trying to run a query.
2024-03-17 11:25:05 -07:00
Charis Kyriakou
752ec04400 Added error handling on webview message processing (#3470) 2024-03-15 12:27:26 +00:00
dependabot[bot]
ec31b97de8 Bump @types/jest from 29.5.11 to 29.5.12 in /extensions/ql-vscode (#3483)
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 29.5.11 to 29.5.12.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

---
updated-dependencies:
- dependency-name: "@types/jest"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-14 10:45:42 -07:00
dependabot[bot]
c447548db3 Bump the typescript-eslint group in /extensions/ql-vscode with 1 update (#3482)
Bumps the typescript-eslint group in /extensions/ql-vscode with 1 update: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin).


Updates `@typescript-eslint/eslint-plugin` from 6.19.0 to 7.2.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.2.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: typescript-eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-14 10:45:11 -07:00
dependabot[bot]
f5c3502202 Bump @babel/preset-env from 7.23.9 to 7.24.0 in /extensions/ql-vscode (#3475)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.9 to 7.24.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.0/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-14 10:43:59 -07:00
Charis Kyriakou
5427c169b9 Show model packs in Model Alerts view (#3484) 2024-03-14 17:11:14 +00:00
dependabot[bot]
de2fc2966d Bump the storybook group in /extensions/ql-vscode with 11 updates
Bumps the storybook group in /extensions/ql-vscode with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `7.6.15` | `8.0.0` |
| [@storybook/addon-actions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/actions) | `7.6.4` | `8.0.0` |
| [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `7.6.4` | `8.0.0` |
| [@storybook/addon-interactions](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions) | `7.6.4` | `8.0.0` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `7.6.4` | `8.0.0` |
| [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) | `7.6.17` | `8.0.0` |
| [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `7.6.7` | `8.0.0` |
| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `7.6.12` | `8.0.0` |
| [@storybook/react-webpack5](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-webpack5) | `7.6.12` | `8.0.0` |
| [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) | `7.6.17` | `8.0.0` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `7.6.15` | `8.0.0` |


Updates `@storybook/addon-a11y` from 7.6.15 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/addons/a11y)

Updates `@storybook/addon-actions` from 7.6.4 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/addons/actions)

Updates `@storybook/addon-essentials` from 7.6.4 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/addons/essentials)

Updates `@storybook/addon-interactions` from 7.6.4 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/addons/interactions)

Updates `@storybook/addon-links` from 7.6.4 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/addons/links)

Updates `@storybook/components` from 7.6.17 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/ui/components)

Updates `@storybook/manager-api` from 7.6.7 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/lib/manager-api)

Updates `@storybook/react` from 7.6.12 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/renderers/react)

Updates `@storybook/react-webpack5` from 7.6.12 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/frameworks/react-webpack5)

Updates `@storybook/theming` from 7.6.17 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/lib/theming)

Updates `storybook` from 7.6.15 to 8.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v8.0.0/code/lib/cli)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/addon-actions"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/addon-essentials"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/addon-interactions"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/react"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/react-webpack5"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-14 16:19:27 +00:00
Koen Vlaswinkel
f06bc88b59 Merge pull request #3477 from github/koesie10/grouped-dependabot-updates
Group some npm dependency updates
2024-03-14 17:15:15 +01:00
Robert
d65e6bea53 Simplify now we've deleted withInheritedProgress 2024-03-14 16:02:37 +00:00
Charis Kyriakou
115ff838c5 Add model packs to variant analyses (#3472) 2024-03-14 14:39:30 +00:00
Koen Vlaswinkel
41524cf45c Group some npm dependency updates 2024-03-14 15:05:29 +01:00
Robert
9777cb1c66 Merge pull request #3464 from github/robertbrignull/token-not-used
Create token-not-used.ql to catch cases where we aren't using the progress bar token correctly
2024-03-14 13:46:30 +00:00
Robert
d9ac8744b6 Merge pull request #3466 from github/robertbrignull/remove_withInheritedProgress
Delete withInheritedProgress and ProgressContext
2024-03-14 13:44:22 +00:00
Robert
fffb0349a6 Apply suggestions from code review
Co-authored-by: Koen Vlaswinkel <koesie10@users.noreply.github.com>
2024-03-14 13:33:06 +00:00
Robert
0454130821 Merge branch 'main' into robertbrignull/remove_withInheritedProgress 2024-03-14 13:24:36 +00:00
Shati Patel
06f9f2c687 Add title to model alerts view (#3465) 2024-03-14 11:46:36 +00:00
Charis Kyriakou
dd90e38b7a Add new ModelPacks component (#3469) 2024-03-14 11:34:34 +00:00
Charis Kyriakou
aa2f371583 Close Model Alerts view when Model editor closes (#3468) 2024-03-14 10:39:44 +00:00
Charis Kyriakou
bbc881e7c7 Move LinkIconButton to common dir (#3467) 2024-03-14 09:39:59 +00:00
Andrew Eisenberg
4cdbdd0d7d Merge pull request #3433 from github/aeisenberg/re-import-test-db
Import testproj databases into workspace storage
2024-03-13 12:34:01 -07:00
Robert
ff889b73e1 Make documentation of fields more consistent 2024-03-13 18:09:51 +00:00
Robert
834b6a649e Use jest.MockedFunction 2024-03-13 18:06:44 +00:00
Robert
16b8f848b5 Delete ProgressContext 2024-03-13 17:57:08 +00:00
Robert
bf58e311dd Delete withInheritedProgress because we always have a progress context 2024-03-13 17:37:21 +00:00
Robert
84df4b64d8 Update messages/descriptions with how to fix the alert 2024-03-13 17:24:09 +00:00
Robert
4346cc6e98 Link to cancellable property 2024-03-13 17:08:55 +00:00
Robert
73bece6f38 Add query for using token when not cancellable 2024-03-13 16:43:59 +00:00
Robert
280bf8b7b2 Convert to an abstract class 2024-03-13 16:43:42 +00:00
Koen Vlaswinkel
a559a0a3e2 Merge pull request #3454 from github/koesie10/cancellable-variant-analysis
Make the "Run variant analysis against published pack" command cancellable
2024-03-13 16:10:18 +01:00
Koen Vlaswinkel
695cf340b7 Do not make model evaluator cancellable 2024-03-13 15:48:52 +01:00
Shati Patel
84a8ffdad2 Only allow one open model alerts view (#3461) 2024-03-13 14:05:47 +00:00
Koen Vlaswinkel
d56f71710e Use MultiCancellationToken in model evaluator 2024-03-13 13:03:46 +01:00
Robert
826175ccd5 Create token-not-used.ql 2024-03-13 11:32:57 +00:00
Shati Patel
3005dacf4e Use VSCodeBadge component (#3462) 2024-03-13 10:12:48 +00:00
Koen Vlaswinkel
8bb0085992 Enable forceExit for CLI tests 2024-03-13 10:20:55 +01:00
Koen Vlaswinkel
992a836ccb Use tree-kill for killing CLI process 2024-03-13 10:19:39 +01:00
Andrew Eisenberg
2d85018d1d Add better log messages 2024-03-12 16:32:24 -07:00
Andrew Eisenberg
f84f792c5f Merge remote-tracking branch 'upstream/main' into aeisenberg/re-import-test-db 2024-03-12 14:50:50 -07:00
Robert
55b9b2e891 Use mocks instead of spies in tests 2024-03-12 15:44:17 +00:00
Robert
ec42728367 Only construct DatabaseFetcher once in extension.ts 2024-03-12 15:38:27 +00:00
Robert
9fa6d99f09 Have the skeleton query wizard call promptImportGithubDatabase so we can make more methods private 2024-03-12 15:32:44 +00:00
Robert
f29aff6303 Inline isFile 2024-03-12 15:32:44 +00:00
Robert
3ee081e8c6 Move commonly-used field to DatabaseFetcher constructor 2024-03-12 15:32:40 +00:00
Robert
18f1a46493 Naively convert DatabaseFetcher to a class 2024-03-12 15:14:00 +00:00
Shati Patel
eb1a5cfba3 Add "model alerts indicator" component (#3441) 2024-03-12 14:08:49 +00:00
Koen Vlaswinkel
0cbd96ff7c Add error listener 2024-03-12 13:43:15 +01:00
Koen Vlaswinkel
3050437cab Clean up process 2024-03-12 13:43:15 +01:00
Koen Vlaswinkel
27bb46ab4c Make more parts of running a variant analysis cancellable 2024-03-12 13:43:14 +01:00
Koen Vlaswinkel
24b7adfb92 Allow cancelling pack download 2024-03-12 13:42:40 +01:00
Koen Vlaswinkel
97eaaacce6 Run pack bundle in separate process and allow cancelling it 2024-03-12 13:42:24 +01:00
Koen Vlaswinkel
b961a7ae55 Extract RunOptions 2024-03-12 13:42:24 +01:00
Koen Vlaswinkel
23003ec8bf Extract process output handling in CLI server 2024-03-12 13:42:24 +01:00
Koen Vlaswinkel
c32065e895 Merge pull request #3457 from github/koesie10/query-suite-code-scanning
Use suite file instead of manually filtering queries
2024-03-12 13:06:12 +01:00
Koen Vlaswinkel
b71a536e00 Use include instructions for suite file 2024-03-12 11:44:30 +01:00
Andrew Eisenberg
fd3acfb1c9 Address pull request comments 2024-03-11 16:01:25 -07:00
github-actions[bot]
66de756d88 Bump CLI Version to v2.16.4 for integration tests (#3459)
* Bump CLI version from v2.16.3 to v2.16.4 for integration tests

* Remove extraneous `v2.16.2` from supported list

We only need to keep the most recent patch version for each minor version.

---------

Co-authored-by: github-actions[bot] <github-actions@github.com>
Co-authored-by: Angela P Wen <angelapwen@github.com>
2024-03-11 14:10:03 -07:00
Koen Vlaswinkel
16a0fce7ce Merge pull request #3456 from github/koesie10/unique-database-names
Make database storage paths more unique
2024-03-11 16:40:46 +01:00
Koen Vlaswinkel
0feef365d9 Clean up temporary file in finally block 2024-03-11 14:39:07 +01:00
Koen Vlaswinkel
e003175f76 Reduce nanoid tries 2024-03-11 14:17:16 +01:00
Koen Vlaswinkel
0e3665b5fc Improve readability of duplicate filename logic 2024-03-11 14:16:53 +01:00
Koen Vlaswinkel
7681a56a16 Fix location of removing dots 2024-03-11 14:14:28 +01:00
Koen Vlaswinkel
bbc09f3ae5 Merge remote-tracking branch 'origin/main' into koesie10/unique-database-names 2024-03-11 12:49:32 +01:00
Koen Vlaswinkel
fe0136091d Use readdir instead of repeated pathExists calls 2024-03-11 12:41:26 +01:00
Koen Vlaswinkel
1ab3deab4d Merge pull request #3455 from github/koesie10/extension-managed-location
Fix incomplete removal of databases
2024-03-11 12:20:14 +01:00
Robert
650b09cf6a Merge pull request #3444 from github/robertbrignull/start-modeling-test
Add tests of MethodModelingViewProvider.viewLoaded
2024-03-11 11:18:56 +00:00
Robert
18f9b5fe15 Use jest.MockedFunction 2024-03-11 11:04:58 +00:00
Robert
dbd5d0f406 Remove unused arguments from resolveWebviewView 2024-03-11 11:02:37 +00:00
Robert
b436fbd73b Merge pull request #3453 from github/robertbrignull/convertGithubNwoToDatabaseUrl
Move convertGithubNwoToDatabaseUrl to databases/github-databases/api.ts
2024-03-11 10:58:15 +00:00
Robert
5402cab05a Merge pull request #3452 from github/robertbrignull/findDirWithFile
Move findDirWithFile to files.ts
2024-03-11 10:57:36 +00:00
Koen Vlaswinkel
e8efbbb9fd Introduce createFilenameFromString function 2024-03-11 11:31:43 +01:00
Koen Vlaswinkel
82741e95c3 Add test for extension-managed db location 2024-03-11 11:15:15 +01:00
Koen Vlaswinkel
35267bb3fd Use suite file instead of manually filtering queries 2024-03-08 16:12:56 +01:00
Koen Vlaswinkel
2c35a97b09 Make database storage paths more unique 2024-03-08 14:56:06 +01:00
Koen Vlaswinkel
f426178b96 Fix incomplete removal of databases 2024-03-08 13:45:59 +01:00
Shati Patel
dbd5078424 Fix warning in package.json about "editor.wordBasedSuggestions" (#3451) 2024-03-07 16:48:29 +00:00
Robert
66879ef626 Move convertGithubNwoToDatabaseUrl to databases/github-databases/api.ts 2024-03-07 16:36:29 +00:00
Robert
fe6dc8a7a3 Move findDirWithFile to files.ts 2024-03-07 16:31:01 +00:00
Robert
8b2355acc3 Merge pull request #3447 from github/dependabot/npm_and_yarn/extensions/ql-vscode/vscode/vsce-2.24.0
Bump @vscode/vsce from 2.22.0 to 2.24.0 in /extensions/ql-vscode
2024-03-07 14:12:01 +00:00
dependabot[bot]
be06026832 Bump @vscode/vsce from 2.22.0 to 2.24.0 in /extensions/ql-vscode
Bumps [@vscode/vsce](https://github.com/Microsoft/vsce) from 2.22.0 to 2.24.0.
- [Release notes](https://github.com/Microsoft/vsce/releases)
- [Commits](https://github.com/Microsoft/vsce/compare/v2.22.0...v2.24.0)

---
updated-dependencies:
- dependency-name: "@vscode/vsce"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-07 13:58:43 +00:00
Robert
d7ef716d63 Merge pull request #3446 from github/dependabot/npm_and_yarn/extensions/ql-vscode/vscode/test-electron-2.3.9
Bump @vscode/test-electron from 2.3.8 to 2.3.9 in /extensions/ql-vscode
2024-03-07 13:57:22 +00:00
Robert
cd9a0287fb Merge pull request #3448 from github/dependabot/npm_and_yarn/extensions/ql-vscode/nanoid-5.0.6
Bump nanoid from 5.0.4 to 5.0.6 in /extensions/ql-vscode
2024-03-07 13:56:03 +00:00
Robert
4187fd6e91 Merge pull request #3445 from github/dependabot/npm_and_yarn/extensions/ql-vscode/tar-stream-3.1.7
Bump tar-stream from 3.1.6 to 3.1.7 in /extensions/ql-vscode
2024-03-07 13:55:38 +00:00
dependabot[bot]
651a9a627e Bump nanoid from 5.0.4 to 5.0.6 in /extensions/ql-vscode
Bumps [nanoid](https://github.com/ai/nanoid) from 5.0.4 to 5.0.6.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/5.0.4...5.0.6)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-07 13:37:01 +00:00
dependabot[bot]
cd2fdf9d2e Bump @vscode/test-electron from 2.3.8 to 2.3.9 in /extensions/ql-vscode
Bumps [@vscode/test-electron](https://github.com/Microsoft/vscode-test) from 2.3.8 to 2.3.9.
- [Changelog](https://github.com/microsoft/vscode-test/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Microsoft/vscode-test/commits/v2.3.9)

---
updated-dependencies:
- dependency-name: "@vscode/test-electron"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-07 13:36:36 +00:00
dependabot[bot]
7ad9507910 Bump tar-stream from 3.1.6 to 3.1.7 in /extensions/ql-vscode
Bumps [tar-stream](https://github.com/mafintosh/tar-stream) from 3.1.6 to 3.1.7.
- [Commits](https://github.com/mafintosh/tar-stream/compare/v3.1.6...v3.1.7)

---
updated-dependencies:
- dependency-name: tar-stream
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-07 13:36:25 +00:00
Robert
54cf5c55a8 Add tests of MethodModelingViewProvider viewLoaded 2024-03-07 10:10:33 +00:00
Robert
659da6cee1 Merge pull request #3440 from github/robertbrignull/database-download-creds
Push decision to use credentials or not down to where the creds are used
2024-03-06 16:43:19 +00:00
Robert
707cdec1ec Update CHANGELOG.md 2024-03-06 16:28:37 +00:00
Robert
ee5ccecbd3 Merge pull request #3443 from github/robertbrignull/delete_hasStateForActiveDb
Delete hasStateForActiveDb as it is unused
2024-03-06 16:26:33 +00:00
Robert
4a662eabfa Merge pull request #3442 from github/robertbrignull/cancellationTokenSource
Use CancellationTokenSource instead of casting dummy objects
2024-03-06 16:18:59 +00:00
Robert
0cdcd2ce67 Delete hasStateForActiveDb as it is unused 2024-03-06 14:52:48 +00:00
Robert
2bc261eacf Use CancellationTokenSource instead of casting dummy objects 2024-03-06 12:28:30 +00:00
Robert
83a6b5a054 Merge pull request #3439 from github/robertbrignull/modeling-mode
Refactor events to fix the method modeling panel getting stuck showing "start modeling"
2024-03-06 12:06:22 +00:00
Robert
5d263bb1a3 Push decision to use credentials or not down to where the creds are used 2024-03-05 15:11:00 +00:00
Shati Patel
cffecafb61 Add a new "model alerts" webview (for showing results from model evaluation) (#3436) 2024-03-05 14:39:30 +00:00
Rasmus Wriedt Larsen
6f1504aaff Merge pull request #3438 from github/RasmusWL/fix-quick-eval-counts
Fix `isQuickEvalCount` logic
2024-03-05 13:34:00 +01:00
Robert
ce12c67469 Merge pull request #3437 from github/robertbrignull/testplan-table-query
Avoid using a @treemap query in testplan
2024-03-05 12:14:12 +00:00
Robert
dc08da924f Inline showMethod 2024-03-05 11:56:37 +00:00
Robert
fdd45e8dbd Make revealItem private by listening to onSelectedMethodChanged 2024-03-05 11:56:31 +00:00
Robert
2f49ac83de Remove setMethod which was only called from onSelectedMethodChanged which we already listen to 2024-03-05 11:05:07 +00:00
Rasmus Wriedt Larsen
c69cea1f8e Apply suggestions from code review
Co-authored-by: Robert <robertbrignull@github.com>
2024-03-05 11:51:51 +01:00
Rasmus Wriedt Larsen
e6b1d8d616 Fix isQuickEvalCount logic
Since `false !== undefined` evaluates to true, we would assign the wrong
value to `isQuickEvalCount` when
`selectedQuery.quickEval?.quickEvalCount` is false
2024-03-05 11:21:43 +01:00
Robert
08c6c8a50c Introduce SetNoMethodSelectedMessage 2024-03-05 09:57:01 +00:00
Robert
d4413424c1 Rewrite setInitialState to always set all fields 2024-03-05 09:57:01 +00:00
Robert
a82be4258c Pull out setSelectedMethod method 2024-03-05 09:57:01 +00:00
Robert
b946f3a509 Pull out setDatabaseItem method 2024-03-05 09:57:00 +00:00
Robert
6402f05624 Avoid using a @treemap query in testplan 2024-03-05 09:42:07 +00:00
Shati Patel
ad9f78ca2b Add link to open "Evaluation Run" from the model editor (#3435) 2024-03-04 17:07:32 +00:00
Robert
54737a0221 Merge pull request #3434 from github/robertbrignull/node-version-workflow
Mention that an automated workflow exists for updating the node version
2024-03-04 16:04:01 +00:00
Robert
ff664dd18c Mention that an automated workflow exists for updating the node version 2024-03-04 11:14:50 +00:00
Andrew Eisenberg
0ed9242b81 Try waiting a few seconds before renaming 2024-03-02 20:43:55 -08:00
Andrew Eisenberg
3497219c68 Use unzipToDirectoryConcurrently instead of the unzipper package 2024-03-01 16:16:59 -05:00
Andrew Eisenberg
4450237612 Add changelog note
And fix linting error.
2024-03-01 15:41:26 -05:00
Koen Vlaswinkel
b7be98b627 Merge pull request #3414 from github/koesie10/verify-valid-sarif
Add check for id property when running variant analysis
2024-03-01 11:20:42 +01:00
Charis Kyriakou
96b7722f26 Add logic to stop an evaluation run (#3421) 2024-03-01 09:25:03 +00:00
Andrew Eisenberg
361fed622b Ask user if they want to re-import outdated testproj dbs
Before running a query now, do the following:

1. Check if the selected database is imported from a testproj
2. If so, check the last modified time of the `codeql-datase.yml` file
   of the imported database with that of its origin.
3. If the origin database has a file that is newer, assume that the
   database has been recreated since the last time it was imported.
4. If newer, then ask the user if they want to re-import before running
   the query.

Also, this change appends the `(test)` label to all test databases in
the database list.
2024-03-01 10:16:16 +01:00
Shati Patel
df782592bc Extract "ModelEvaluation" component (#3432) 2024-02-29 16:42:38 +00:00
dependabot[bot]
30fd1226d5 Bump @babel/core from 7.23.6 to 7.24.0 in /extensions/ql-vscode (#3429)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.6 to 7.24.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-29 06:47:04 -08:00
dependabot[bot]
d810ed823a Bump eslint-plugin-storybook in /extensions/ql-vscode (#3431)
Bumps [eslint-plugin-storybook](https://github.com/storybookjs/eslint-plugin-storybook) from 0.6.15 to 0.8.0.
- [Release notes](https://github.com/storybookjs/eslint-plugin-storybook/releases)
- [Changelog](https://github.com/storybookjs/eslint-plugin-storybook/blob/main/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/eslint-plugin-storybook/compare/v0.6.15...v0.8.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-storybook
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-29 06:23:01 -08:00
dependabot[bot]
567a0bb194 Bump applicationinsights from 2.9.2 to 2.9.4 in /extensions/ql-vscode (#3430)
Bumps [applicationinsights](https://github.com/microsoft/ApplicationInsights-node.js) from 2.9.2 to 2.9.4.
- [Release notes](https://github.com/microsoft/ApplicationInsights-node.js/releases)
- [Commits](https://github.com/microsoft/ApplicationInsights-node.js/compare/2.9.2...2.9.4)

---
updated-dependencies:
- dependency-name: applicationinsights
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-29 06:22:37 -08:00
Charis Kyriakou
f283df0225 Update model evaluation notification (#3426) 2024-02-29 14:19:34 +00:00
dependabot[bot]
a70fd835f1 Bump mini-css-extract-plugin in /extensions/ql-vscode (#3428)
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 2.8.0 to 2.8.1.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.8.0...v2.8.1)

---
updated-dependencies:
- dependency-name: mini-css-extract-plugin
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-29 06:12:11 -08:00
Charis Kyriakou
a51bd76392 Skip logging warning for multi-query variant analyses (#3425) 2024-02-29 13:50:19 +00:00
Charis Kyriakou
1ac92ad79c Don't open variant analysis view when running a model evaluation run (#3424) 2024-02-29 13:38:21 +00:00
Koen Vlaswinkel
b168ce708b Check against problem and path-problem aliases 2024-02-29 14:01:32 +01:00
Anders Starcke Henriksen
fc5d462dc5 Merge pull request #3423 from github/version/bump-to-v1.12.4
Bump version to v1.12.4
2024-02-29 12:17:11 +01:00
github-actions[bot]
30da5d5b62 Bump version to v1.12.4 2024-02-29 10:42:04 +00:00
Anders Starcke Henriksen
b301c4a08c Merge pull request #3422 from github/v1.12.3
v1.12.3
2024-02-29 11:40:21 +01:00
Anders Starcke Henriksen
bb796b0c27 v1.12.3
Some checks failed
Release / Release (push) Has been cancelled
Release / Publish to VS Code Marketplace (push) Has been cancelled
Release / Publish to Open VSX Registry (push) Has been cancelled
2024-02-29 10:24:32 +01:00
Koen Vlaswinkel
f73ea67967 Merge pull request #3413 from github/koesie10/fix-tests-with-warnings
Show test results for tests with warnings
2024-02-28 16:02:32 +01:00
Koen Vlaswinkel
eaa432b9d7 Add tests for new test warning behavior 2024-02-28 14:01:06 +01:00
Charis Kyriakou
23bbff230f Update variant analysis monitor to get the whole variant analysis object (#3415) 2024-02-28 12:12:27 +00:00
Charis Kyriakou
b884cff14d Some restructuring around variant analysis mapper functions (#3412) 2024-02-28 11:45:49 +00:00
Koen Vlaswinkel
359ee76d52 Merge pull request #3401 from github/koesie10/hide-generated-type-models
Generate separate file for generated type models in Ruby by default
2024-02-28 11:47:58 +01:00
Koen Vlaswinkel
5521c00346 Add check for id property when running variant analysis 2024-02-28 11:17:15 +01:00
Koen Vlaswinkel
eb71df84a7 Move query metadata retrieval before pack bundling 2024-02-28 11:15:00 +01:00
Koen Vlaswinkel
d14c7b4114 Show test results for tests with warnings 2024-02-28 10:47:29 +01:00
Charis Kyriakou
ab36153511 Minor renames in variant analysis monitor tests (#3411)
* Rename mockGetVariantAnalysis -> mockGetVariantAnalysisFromApi

* Rename mockEecuteCommand -> mockExecuteCommand
2024-02-28 09:12:26 +00:00
Koen Vlaswinkel
0599adccc0 Fix generated text
Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com>
2024-02-28 09:58:33 +01:00
Charis Kyriakou
e86127672a Drop async from some functions that are not async (#3410) 2024-02-27 16:57:53 +00:00
Charis Kyriakou
040c7fc726 Add support for 'canceling' status for variant analysis (#3405) 2024-02-27 16:32:24 +00:00
Charis Kyriakou
5f047386c9 Rename getVariantAnalysis to tryGetVariantAnalysis (#3409) 2024-02-27 14:31:43 +00:00
Charis Kyriakou
a416bcf544 Rename variable in variant analysis manager (#3408) 2024-02-27 14:07:12 +00:00
Robert
c45a8158a3 Merge pull request #3395 from github/robertbrignull/set-modeled-and-modified-methods
Set modeled methods and modified methods together
2024-02-26 13:24:39 +00:00
Robert
a74e36314c Update extensions/ql-vscode/test/__mocks__/model-editor/modelingEventsMock.ts
Co-authored-by: Koen Vlaswinkel <koesie10@users.noreply.github.com>
2024-02-26 13:11:22 +00:00
Robert
7fac0405b3 Remove dedicated modified methods event 2024-02-26 11:22:46 +00:00
Robert
7c77b39d30 Rename to ModeledAndModifiedMethodsChanged 2024-02-26 11:22:44 +00:00
Robert
1567d83463 modifiedMethodSignatures is always defined 2024-02-26 11:22:41 +00:00
Koen Vlaswinkel
7dceded98c Use showTypeModels setting instead of canary mode 2024-02-26 12:11:16 +01:00
Robert
ec67df3373 Merge branch 'main' into robertbrignull/set-modeled-and-modified-methods 2024-02-26 11:06:34 +00:00
Robert
6e61ddb0f2 Merge pull request #3398 from github/robertbrignull/sort-in-modeling-store
Move all sorting to the modeling store, and then all views preserve the sorting
2024-02-26 11:05:59 +00:00
Koen Vlaswinkel
32d981ace4 Merge remote-tracking branch 'origin/main' into koesie10/hide-generated-type-models 2024-02-26 11:59:23 +01:00
Koen Vlaswinkel
1da465f7df Merge pull request #3399 from github/koesie10/hide-type-models-non-canary
Hide type models for Ruby by default
2024-02-26 11:58:30 +01:00
Koen Vlaswinkel
713ca9f785 Fix test names 2024-02-26 11:45:23 +01:00
Robert
9a5654648d Rename to createGroups 2024-02-26 10:35:51 +00:00
Robert
a1c84ac689 Reorder expected test data 2024-02-26 10:32:46 +00:00
Koen Vlaswinkel
7591c65db2 Add showTypeModels setting 2024-02-26 11:19:23 +01:00
Koen Vlaswinkel
c8ec1d6ea3 Merge remote-tracking branch 'origin/main' into koesie10/hide-type-models-non-canary 2024-02-26 11:07:54 +01:00
Andrew Eisenberg
ca21ed18d0 Import testproj databases into workspace storage
If a folder that ends with `.testproj` is encountered, assume it is a
database created by a codeql test. When the user wants to import this
database, copy it into workspace storage. The database can be
re-imported, which first removes the old version before importing it
again.
2024-02-25 18:39:41 -05:00
Koen Vlaswinkel
8063d6c46b Merge pull request #3402 from github/koesie10/simplify-multiple-modeled-methods-panel-spec
Reduce repetition in `MultipleModeledMethodsPanel.spec.tsx`
2024-02-23 16:32:45 +01:00
Koen Vlaswinkel
48718ca2e6 Reduce repetition in MultipleModeledMethodsPanel.spec.tsx 2024-02-23 15:47:40 +01:00
Koen Vlaswinkel
22024462fb Generate separate file for generated type models in Ruby 2024-02-23 15:38:12 +01:00
Koen Vlaswinkel
b4a9ef0d4c Merge pull request #3400 from github/koesie10/refactor-yaml-save
Extract saving of model extension YAML file
2024-02-23 15:24:16 +01:00
Koen Vlaswinkel
5468aef458 Extract saving of model extension YAML file 2024-02-23 14:38:12 +01:00
Charis Kyriakou
f4a866b04b Add logic to trigger model evaluation run (#3397) 2024-02-23 11:17:25 +00:00
Koen Vlaswinkel
f57d4418c7 Hide type models for Ruby in non-canary mode 2024-02-23 10:32:17 +01:00
Chris Smowton
a62522ec67 Merge pull request #3388 from github/github-action/bump-cli
Bump CLI Version to v2.16.3 for integration tests
2024-02-23 09:28:01 +00:00
Koen Vlaswinkel
6031d9b496 Merge pull request #3394 from github/koesie10/auto-run-generate-ruby-type-models
Auto-generate type models for Ruby
2024-02-23 10:15:05 +01:00
Koen Vlaswinkel
c216b52c8d Merge pull request #3370 from github/koesie10/model-pack-mrva-test
Add test for model packs in MRVA to test plan
2024-02-23 10:14:55 +01:00
Robert
ff685f0233 Move all sorting to the modeling store, and then all views preserve the sorting 2024-02-22 17:20:36 +00:00
Charis Kyriakou
948c1e2eb7 Add model evaluation run to store and view (#3385) 2024-02-22 16:28:32 +00:00
Robert
5ce09e6ccc Include modifiedMethodSignatures in SetModeledMethodsMessage 2024-02-22 15:45:57 +00:00
Robert
8832655c2f Add modifiedMethodSignatures to ModeledMethodsChangedEvent 2024-02-22 15:45:53 +00:00
Koen Vlaswinkel
e408c0ac95 Auto-generate type models for Ruby 2024-02-22 16:44:03 +01:00
dependabot[bot]
07d9c4efc4 Bump @storybook/components from 7.6.7 to 7.6.17 in /extensions/ql-vscode (#3393)
Bumps [@storybook/components](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/components) from 7.6.7 to 7.6.17.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v7.6.17/code/ui/components)

---
updated-dependencies:
- dependency-name: "@storybook/components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-22 06:23:26 -08:00
dependabot[bot]
98491fb1dc Bump @typescript-eslint/parser in /extensions/ql-vscode (#3392)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.16.0 to 6.21.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.21.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-22 06:23:05 -08:00
dependabot[bot]
5c305f96de Bump @faker-js/faker from 8.3.1 to 8.4.1 in /extensions/ql-vscode (#3391)
Bumps [@faker-js/faker](https://github.com/faker-js/faker) from 8.3.1 to 8.4.1.
- [Release notes](https://github.com/faker-js/faker/releases)
- [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md)
- [Commits](https://github.com/faker-js/faker/compare/v8.3.1...v8.4.1)

---
updated-dependencies:
- dependency-name: "@faker-js/faker"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-22 06:22:45 -08:00
dependabot[bot]
4b64e98e9f Bump @testing-library/react in /extensions/ql-vscode (#3390)
Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 14.1.2 to 14.2.1.
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v14.1.2...v14.2.1)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-22 06:22:18 -08:00
dependabot[bot]
2b14639c80 Bump chokidar from 3.5.3 to 3.6.0 in /extensions/ql-vscode (#3389)
Bumps [chokidar](https://github.com/paulmillr/chokidar) from 3.5.3 to 3.6.0.
- [Release notes](https://github.com/paulmillr/chokidar/releases)
- [Commits](https://github.com/paulmillr/chokidar/compare/3.5.3...3.6.0)

---
updated-dependencies:
- dependency-name: chokidar
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-22 06:21:58 -08:00
Koen Vlaswinkel
b826ed3d9c Merge pull request #3373 from github/koesie10/download-timeout
Add timeouts to downloading databases and the CLI
2024-02-22 13:39:38 +01:00
Robert
63de6cece5 Allow changeModeledMethods to also call fireModifiedMethodsChangedEvent 2024-02-22 12:36:06 +00:00
Robert
59118f63aa Change addModeledMethods and updateModeledMethods to also set methods as modified 2024-02-22 12:31:17 +00:00
Robert
91e59323f3 Delete setModifiedMethods as it is unused 2024-02-22 12:31:17 +00:00
Koen Vlaswinkel
54e1275f68 Merge pull request #3387 from github/koesie10/update-ruby-generate-query-constraints
Update Ruby model generation query constraints
2024-02-22 13:27:43 +01:00
Koen Vlaswinkel
9437cd094b Update CHANGELOG 2024-02-22 13:25:03 +01:00
github-actions[bot]
6161c7d3d4 Bump CLI version from v2.16.2 to v2.16.3 for integration tests 2024-02-22 11:54:32 +00:00
Koen Vlaswinkel
873ccaa7fd Update Ruby model generation query constraints 2024-02-22 12:09:00 +01:00
Robert
7a2688edac Merge pull request #3382 from github/robertbrignull/automodel-sort-order
Update method sort order to place auto-model predictions earlier
2024-02-22 11:00:51 +00:00
Koen Vlaswinkel
bf35909375 Merge pull request #3380 from github/koesie10/processed-method-modeling
Add processed by auto model state to method modeling panel
2024-02-22 09:34:55 +01:00
Robert
4096ded330 Merge branch 'main' into robertbrignull/automodel-sort-order 2024-02-21 17:38:50 +00:00
Robert
fee7eae702 Merge pull request #3377 from github/robertbrignull/disable-automodel-button
Disable the automodel button if there are no methods that can be modeled
2024-02-21 16:11:21 +00:00
Koen Vlaswinkel
2c6eb3c832 Fix incorrect modelPending prop 2024-02-21 16:24:11 +01:00
Robert
2fdafaf616 Move getCandidates to the shared directory 2024-02-21 12:29:43 +00:00
Robert
b59437e7dc Cover in unit test that unmodeled and unsaved manual models are sorted together 2024-02-21 11:49:13 +00:00
Charis Kyriakou
e78f7e62fb Moved logic to get standard pack for variant analysis (#3384) 2024-02-21 11:42:08 +00:00
Robert
759f8d4768 Give test methods signatures that'll be easier to identify 2024-02-21 11:39:54 +00:00
Robert
3ca4c7623e Update sort order for supported methods and unsaved manual models 2024-02-21 11:38:58 +00:00
Robert
7a68fcd05d Add comment explaining sort order more 2024-02-21 10:40:38 +00:00
Robert
1bad26a67d Merge branch 'main' into robertbrignull/automodel-sort-order 2024-02-21 10:33:27 +00:00
Koen Vlaswinkel
db73cfeb76 Merge pull request #3378 from github/koesie10/ignore-more-location-indexes
Ignore more location indexes in SARIF comparison
2024-02-21 10:37:47 +01:00
Koen Vlaswinkel
3d2d86bf6e Merge pull request #3379 from github/koesie10/italic-model-pending
Show auto-model negative predictions in italics
2024-02-21 09:55:29 +01:00
Charis Kyriakou
0533dad9ea Add progress ring in 'stop evaluation' button (#3383) 2024-02-20 16:44:47 +00:00
Robert
95fd015414 Add unit tests of method sorting 2024-02-20 16:07:03 +00:00
Robert
70a64886d6 Rename + expand existing helper for shuffling lists 2024-02-20 15:19:01 +00:00
Charis Kyriakou
46a15bfdd6 Add dummy model evaluation buttons to model editor (#3381) 2024-02-20 14:50:15 +00:00
Robert
14dbb65f50 Change sort order to place AI predictions at the start 2024-02-20 14:38:30 +00:00
Robert
8f3ab61422 Perform filtering before sorting when determining auto-model candidates 2024-02-20 14:24:13 +00:00
Koen Vlaswinkel
409c89653c Add processed by auto model state to method modeling panel 2024-02-20 15:05:49 +01:00
Robert
3598b1871f Merge pull request #3376 from github/robertbrignull/dont-model-twice
Don't send methods to AutoModel more than once
2024-02-20 13:57:17 +00:00
Robert
e3d9efef06 Use anonymous function instead of direct function reference 2024-02-20 13:35:27 +00:00
Koen Vlaswinkel
694bb21713 Ignore more location indexes in SARIF comparison 2024-02-20 14:32:41 +01:00
Robert
d6c5ebe73a Pass methodSignatures to getProcessedByAutoModelMethods 2024-02-20 13:27:09 +00:00
Koen Vlaswinkel
899b159209 Use auto-model status for determining model pending 2024-02-20 14:22:31 +01:00
Koen Vlaswinkel
545311f26d Switch from model accepted to model pending 2024-02-20 14:17:25 +01:00
Robert
d9ae0c6d17 Disable the automodel button if there are no methods that can be modeled 2024-02-20 12:34:49 +00:00
Koen Vlaswinkel
4727e0ecab Merge pull request #3375 from github/koesie10/react-processed-by-auto-model
Add `processedByAutoModelMethods` state to React view
2024-02-20 13:11:24 +01:00
Robert
dbdb561598 Don't send methods to AutoModel more than once 2024-02-20 12:06:07 +00:00
Koen Vlaswinkel
bca4910bf2 Add processedByAutoModelMethods state to React view 2024-02-20 12:15:57 +01:00
Robert
3b30f22143 Merge pull request #3374 from github/robertbrignull/sentToLLMMethods
Add sentToLLM to ModelingStore
2024-02-20 10:05:27 +00:00
Robert
67f46b7fb2 Add processedByAUtoModel to modelingEventsMock 2024-02-20 09:47:37 +00:00
Robert
f98c5319cb Rename to processedByAutoModel 2024-02-20 09:44:25 +00:00
Koen Vlaswinkel
7cd43cd894 Merge pull request #3369 from github/koesie10/stream-cli-output
Stream CLI server command stderr instead of buffering
2024-02-20 09:29:39 +01:00
Robert
4c4820f76a add sentToLLM to ModelingStore 2024-02-19 16:48:40 +00:00
Koen Vlaswinkel
1b66767d43 Simplify stderr buffers and EOL splitting
Co-authored-by: Robert <robertbrignull@github.com>
2024-02-19 16:40:28 +01:00
Koen Vlaswinkel
1a9c792756 Extract timeout and apply to it to CLI downloads 2024-02-19 16:11:53 +01:00
Koen Vlaswinkel
feeb9d68b7 Add timeout to downloading databases 2024-02-19 14:10:28 +01:00
Robert
58b26d2b41 Merge pull request #3363 from github/robertbrignull/database-picker
Small usability improvements to database picker
2024-02-19 10:52:31 +00:00
Robert
0f18c841dc Update placeholder text 2024-02-19 10:39:29 +00:00
Koen Vlaswinkel
67870cac08 Merge pull request #3372 from github/koesie10/upgrade-ip
Upgrade ip package
2024-02-19 10:37:33 +01:00
Koen Vlaswinkel
3de57d82ab Upgrade ip package 2024-02-19 09:44:30 +01:00
Charis Kyriakou
60e497a763 Remove support for CodeQL CLI v2.12.7 and v2.11.6 (#3371) 2024-02-16 16:22:02 +00:00
Koen Vlaswinkel
abda1baca7 Add test for model packs in MRVA to test plan 2024-02-16 13:45:35 +01:00
Koen Vlaswinkel
5ddc3c11d3 Stream CLI server command stderr instead of buffering 2024-02-16 13:14:39 +01:00
dependabot[bot]
d2f4cd12a1 Bump @storybook/addon-a11y in /extensions/ql-vscode (#3364)
Bumps [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) from 7.6.13 to 7.6.15.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v7.6.15/code/addons/a11y)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 02:26:16 -08:00
dependabot[bot]
01b53f1709 Bump @testing-library/jest-dom in /extensions/ql-vscode (#3368)
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 6.2.0 to 6.4.2.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.2.0...v6.4.2)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 08:42:03 +00:00
dependabot[bot]
2224ff936f Bump storybook from 7.6.10 to 7.6.15 in /extensions/ql-vscode (#3366)
Bumps [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) from 7.6.10 to 7.6.15.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v7.6.15/code/lib/cli)

---
updated-dependencies:
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 08:40:59 +00:00
dependabot[bot]
29cbe9a273 Bump mini-css-extract-plugin in /extensions/ql-vscode (#3365)
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 2.7.7 to 2.8.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.7...v2.8.0)

---
updated-dependencies:
- dependency-name: mini-css-extract-plugin
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 08:40:26 +00:00
Shati Patel
f1cc347e2a Add "short-paths" test (#3350) 2024-02-15 16:09:35 +00:00
Shati Patel
b7010aa102 Replace deprecated telemetry setting in the tests (#3362) 2024-02-15 10:22:08 +00:00
Charis Kyriakou
574ba177cd Tidy up auto-modeling rate limit error message (#3361) 2024-02-15 08:28:50 +00:00
Robert
d440c1080c Make placeholder messages more descriptive 2024-02-14 17:08:43 +00:00
Robert
bb1bd5ce8b Add test for when there are no databases 2024-02-14 16:44:37 +00:00
Robert
dd98a968ce Fix naming in test databases 2024-02-14 16:41:07 +00:00
Robert
8c87493d76 Don't offer existing databases if there aren't any 2024-02-14 16:30:58 +00:00
Koen Vlaswinkel
0f4a7788a7 Merge pull request #3360 from github/koesie10/remove-any-from-gulpfile
Add types to TextMate gulp step
2024-02-14 14:59:49 +01:00
Robert
f12629ec4a Merge pull request #3359 from github/robertbrignull/resultsapp
Remove cases from ResultsApp that seem to be impossible
2024-02-14 13:52:37 +00:00
Koen Vlaswinkel
3cb92233ac Add types to TextMate gulp step 2024-02-14 14:26:42 +01:00
Robert
51c81f9172 Move setState call later 2024-02-14 12:41:18 +00:00
Robert
9eb7f96ac0 Remove impossible cases because resultsInfo cannot be null 2024-02-14 12:40:10 +00:00
Robert
9f4b82710a Merge pull request #3354 from github/robertbrignull/multi-mrva-test
Add a CLI test for MRVA with multiple queries
2024-02-14 12:23:56 +00:00
Charis Kyriakou
715b2004f7 Make some clarifications in the test plan (#3358) 2024-02-14 12:05:24 +00:00
Robert
2138f859f5 Skip test when CLI version is not high enough 2024-02-14 11:48:58 +00:00
Robert
9e2b16afe3 Merge pull request #3353 from github/robertbrignull/eslint_no_any
Enable no-explicit-any throughout production code
2024-02-14 11:25:46 +00:00
Robert
93e6c53c8d Merge eslintrc files 2024-02-14 11:10:35 +00:00
Koen Vlaswinkel
f4eed4d6a0 Merge pull request #3352 from github/koesie10/python-mad-format
Add support for Python in the model editor
2024-02-14 12:04:09 +01:00
Charis Kyriakou
c9a7c11731 Merge pull request #3357 from github/version/bump-to-v1.12.3
Bump version to v1.12.3
2024-02-14 10:47:37 +00:00
github-actions[bot]
701539fb7f Bump version to v1.12.3 2024-02-14 10:29:50 +00:00
Charis Kyriakou
2ca61fb2d3 Merge pull request #3356 from github/v1.12.2
v1.12.2
2024-02-14 10:28:25 +00:00
Robert
d1ba99f2b4 Add test files 🤦 2024-02-14 10:07:29 +00:00
Charis Kyriakou
ad98388b66 v1.12.2
Some checks failed
Release / Release (push) Has been cancelled
Release / Publish to VS Code Marketplace (push) Has been cancelled
Release / Publish to Open VSX Registry (push) Has been cancelled
2024-02-14 09:24:55 +00:00
Koen Vlaswinkel
38816b9f52 Merge pull request #3355 from github/koesie10/fix-view-compilation
Recompile view when shared files change
2024-02-14 10:04:08 +01:00
Koen Vlaswinkel
1ce652629c Recompile view when shared files change 2024-02-14 09:46:58 +01:00
Robert
644f917b67 Add CLI test of multiple queries 2024-02-13 17:39:56 +00:00
Robert
e16468754a Convert doVariantAnalysisTest to take multiple queries 2024-02-13 17:22:01 +00:00
Robert
ed96cbb2c9 Use as unknown as ResultsPaths in ResultsApp.tsx 2024-02-13 14:59:17 +00:00
Robert
ac707ff75c Ignore any in useEffectEvent.ts 2024-02-13 14:59:14 +00:00
Robert
334dbf57ef Ignore any in CommandManager.ts 2024-02-13 14:53:15 +00:00
Robert
a4294e2e28 Disable no-explicit-any in gulpfile.ts directory 2024-02-13 14:53:15 +00:00
Robert
e3a6678dc7 Disable no-explicit-any in test directory 2024-02-13 14:53:15 +00:00
Robert
55c86016a3 Disallow use of any by default 2024-02-13 14:38:43 +00:00
Koen Vlaswinkel
070af9eb42 Add support for Python in the model editor 2024-02-13 15:22:37 +01:00
Shati Patel
70b8ddfa37 Add feature flag for Python model editor (#3351) 2024-02-13 14:02:13 +00:00
Robert
923a480ddd Merge pull request #3349 from github/robertbrignull/add_types
Add new type parameters to functions where possible
2024-02-13 14:02:04 +00:00
Robert
cd0d64605a Change registerCommandWithErrorHandling from two type args to one 2024-02-13 12:35:04 +00:00
Robert
fcc5f6967e Add generic types to registerCommandWithErrorHandling 2024-02-13 11:10:16 +00:00
Robert
74070fbc1a Add type information to Memento.update 2024-02-13 11:10:16 +00:00
Robert
f8e825287c Add typing to readJsonlFile
We're still not verifying the actual object returned by JSON.parse so
this isn't any safer at runtime than using 'any', but it helps add more
static typing to the code calling readJsonlFile.
2024-02-13 11:10:16 +00:00
Koen Vlaswinkel
d7e9606bfa Merge pull request #3331 from github/koesie10/endpoint-type-supported
Add supported endpoint types to predicates
2024-02-13 12:04:45 +01:00
Robert
be6166497f Merge pull request #3342 from github/robertbrignull/cached_operation
Give more types to CachedOperation to avoid use of any
2024-02-13 10:48:31 +00:00
Robert
01f6884b6c Undo changes to comment 2024-02-13 10:17:15 +00:00
Koen Vlaswinkel
8d1480ab35 Merge pull request #3348 from github/koesie10/ruby-canary
Remove `enableRuby` feature flag
2024-02-13 11:06:59 +01:00
Robert
4ed6a7b95b Merge pull request #3346 from github/robertbrignull/telemetry-unknown
Avoid use of any in TelemetryListener
2024-02-13 09:37:34 +00:00
Koen Vlaswinkel
00076a9538 Remove enableRuby feature flag 2024-02-13 10:18:50 +01:00
Dave Bartolomeo
3f02ff4151 Merge pull request #3347 from github/github-action/bump-cli
Bump CLI Version to v2.16.2 for integration tests
2024-02-12 10:37:37 -08:00
github-actions[bot]
9e7fefe724 Bump CLI version from v2.16.1 to v2.16.2 for integration tests 2024-02-12 18:23:59 +00:00
Robert
0f6afac222 Use type import 2024-02-12 17:16:34 +00:00
Robert
f7731e2e12 Merge pull request #3344 from github/robertbrignull/correct-types
Use correct types where possible instead of any
2024-02-12 16:51:06 +00:00
Robert
f4edc6e5a9 Merge pull request #3345 from github/robertbrignull/addWatcher-unknown
Use bind instead of thisArg parameter in MultiFileSystemWatcher
2024-02-12 16:37:21 +00:00
Robert
478d41648e Use type import 2024-02-12 16:32:42 +00:00
Robert
6472ea8fde Merge pull request #3341 from github/robertbrignull/unknown_type_checking
Use unknown instead of any in type functions
2024-02-12 15:57:23 +00:00
Robert
5a80d02a91 Merge pull request #3343 from github/robertbrignull/use-unknown
Use unknown instead of any where possible
2024-02-12 15:56:42 +00:00
Robert
939616372c Use correct type for envelope argument 2024-02-12 15:39:23 +00:00
Robert
bfe78eba9a Use string index notation instead of as any 2024-02-12 15:39:23 +00:00
Robert
8a389f2eb7 Remove thisArg from addWatcher and use bind instead 2024-02-12 15:38:26 +00:00
Robert
1004f16b10 Change addWatcher listener to return void 2024-02-12 15:38:26 +00:00
Robert
e5961f2967 Use Record<string, unknown> for additionalRunQueryArgs 2024-02-12 15:37:46 +00:00
Robert
25f179ca0e Use unknown in QLDebugSession.customRequest 2024-02-12 15:37:46 +00:00
Robert
e7adfdc8bc Use unknown for extension type 2024-02-12 15:37:45 +00:00
Robert
281242fa3f Use unknown in Disposable 2024-02-12 15:37:45 +00:00
Robert
4b832bd85c Use QlPackFile type in quick-query.ts 2024-02-12 15:36:43 +00:00
Robert
7af65ed86a Use computed type instead of any for listCodeqlDatabases response
This endpoint actually has the correct type already. We could explicitly
declare it as
RestEndpointMethodTypes["codeScanning"]["listCodeqlDatabases"]["response"]["data"][0]
but this seems unnecessary given how ugly that type is. If we just do nothing
then typescript already computes the correct type for us.
2024-02-12 15:36:22 +00:00
Robert
116aceffc1 Use correct type for octokit options 2024-02-12 15:36:13 +00:00
Robert
f6efcd5a21 onCancellationRequested listener should not return anything (I think) 2024-02-12 15:34:19 +00:00
Robert
bdbd123d32 Give type information to convertedLabelArray 2024-02-12 15:33:49 +00:00
Robert
f0ce52d01a Remove use of any in scripts/source-map.ts 2024-02-12 15:32:42 +00:00
Robert
31ff3577c4 Remove use of any in scripts/add-fields-to-scenarios.ts 2024-02-12 15:32:33 +00:00
Robert
98c96b09ee Give CachedOperation a type parameter for its args 2024-02-12 15:15:58 +00:00
Robert
f4727fe7b5 Convert CachedOperation callbacks to use Error type 2024-02-12 15:15:58 +00:00
Robert
e943e7fa2e Convert isTabInputText to use unknown 2024-02-12 15:15:33 +00:00
Robert
6e53f28972 Convert isIOError to use unknown 2024-02-12 15:15:32 +00:00
Robert
3b366a6f51 Convert isErrorLike to use unknown 2024-02-12 15:15:32 +00:00
Shati Patel
c906e76214 Update databases README (#3340) 2024-02-12 12:15:37 +00:00
Koen Vlaswinkel
aedc063d1a Merge pull request #3326 from github/koesie10/add-endpoint-type
Add endpoint type to method definition
2024-02-12 12:34:22 +01:00
Charis Kyriakou
ecea102292 Merge pull request #3333 from github/dependabot/npm_and_yarn/extensions/ql-vscode/floating-ui/react-0.26.9
Bump @floating-ui/react from 0.26.5 to 0.26.9 in /extensions/ql-vscode
2024-02-09 11:43:03 +00:00
Koen Vlaswinkel
59e20f0fcb Select option before accepting it
In the new version of Floating UI, it corrects that the JSDOM click was
seen as a "mobile" click. Since [`focusItemOnOpen`](https://floating-ui.com/docs/useListNavigation#focusitemonopen)
is set to `auto`, this results in selecting the first option when the
suggest box was opened. Now that JSDOM is correctly detected as a keyboard
input device, it will not select the first option when the suggest box is
opened. The tests have been updated to account for this by always first
selecting the first option before accepting it.
2024-02-09 12:00:53 +01:00
dependabot[bot]
1135f7a7f8 Bump @storybook/addon-a11y from 7.6.9 to 7.6.13 in /extensions/ql-vscode (#3332)
Bumps [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) from 7.6.9 to 7.6.13.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v7.6.13/code/addons/a11y)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-08 15:58:11 +00:00
Robert
d6bd482c89 Merge pull request #3330 from github/robertbrignull/debug_configuration_makearray
Remove use of any and make typing clearer in debugger code
2024-02-08 15:52:10 +00:00
Charis Kyriakou
11e5db9aca Merge branch 'main' into dependabot/npm_and_yarn/extensions/ql-vscode/floating-ui/react-0.26.9 2024-02-08 15:29:29 +00:00
Koen Vlaswinkel
0b4c611a5f Add supported endpoint types 2024-02-08 16:27:41 +01:00
dependabot[bot]
39cbe3b373 Bump semver from 7.5.4 to 7.6.0 in /extensions/ql-vscode (#3335)
Bumps [semver](https://github.com/npm/node-semver) from 7.5.4 to 7.6.0.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.5.4...v7.6.0)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-08 15:26:48 +00:00
dependabot[bot]
d62ac97a7b Bump prettier from 3.2.4 to 3.2.5 in /extensions/ql-vscode (#3336)
Bumps [prettier](https://github.com/prettier/prettier) from 3.2.4 to 3.2.5.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.2.4...3.2.5)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-08 15:24:08 +00:00
dependabot[bot]
6615c3df84 Bump @floating-ui/react from 0.26.5 to 0.26.9 in /extensions/ql-vscode
Bumps [@floating-ui/react](https://github.com/floating-ui/floating-ui/tree/HEAD/packages/react) from 0.26.5 to 0.26.9.
- [Release notes](https://github.com/floating-ui/floating-ui/releases)
- [Changelog](https://github.com/floating-ui/floating-ui/blob/master/packages/react/CHANGELOG.md)
- [Commits](https://github.com/floating-ui/floating-ui/commits/@floating-ui/react@0.26.9/packages/react)

---
updated-dependencies:
- dependency-name: "@floating-ui/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 13:48:25 +00:00
Robert
db5293a142 Convert makeArray to use NotArray 2024-02-08 12:06:20 +00:00
Robert
e93ef98a67 Convert debug-protocol and friends to use unknown instead of any 2024-02-08 12:03:06 +00:00
Robert
bd823b5745 Merge pull request #3329 from github/robertbrignull/asString
Use type 'string | Buffer' for process stdout/stderr
2024-02-08 10:56:27 +00:00
Robert
3e716e91c8 Merge pull request #3327 from github/robertbrignull/VsCodeWindow
Introduce VsCodeWindow to provide types for the fields we're reading/writing
2024-02-08 10:32:48 +00:00
Robert
58a06191c0 Use type of 'string | Buffer' 2024-02-08 10:26:32 +00:00
Robert
dd74372702 Merge pull request #3328 from github/robertbrignull/ref_types
Provide types for all react refs
2024-02-08 10:02:53 +00:00
Koen Vlaswinkel
6fd628b49c Add endpointType in tests 2024-02-08 11:02:09 +01:00
Robert
4f11f7560b Introduce VsCodeWindow to provide types for the fields we're reading/writing 2024-02-07 17:35:50 +00:00
Robert
388f4299b0 Introduce asString to call toString() safely on process stdout/stderr 2024-02-07 17:21:32 +00:00
Robert
b577576b00 Add typing to useScrollIntoView ref 2024-02-07 17:20:32 +00:00
Robert
126acc3979 Add typing to RawTableRow ref and friends 2024-02-07 17:20:31 +00:00
Robert
c6e6b5736c Add typing to AlertTableResultRow ref and friends 2024-02-07 17:20:31 +00:00
Robert
5fe5f70867 Merge pull request #3325 from github/robertbrignull/delete-additional-typings
Delete src/additional-typings.d.ts
2024-02-07 17:14:37 +00:00
Koen Vlaswinkel
c9be2ce32c Add endpoint type to method definition
This adds an `endpointType` property to method definitions since we
already have different endpoints (for example methods and modules in
Ruby) and it would be useful to make a distinction between these (it's
not possible to model a module as a source/sink/summary, but it should
be possible to model as a type).
2024-02-07 16:49:40 +01:00
Koen Vlaswinkel
bbfc5d88dd Merge pull request #3324 from github/koesie10/access-path-suggest-box
Extract `AccessPathSuggestBox` component
2024-02-07 16:34:14 +01:00
Shati Patel
b418f479d6 Don't try to parse output of codeql pack add as JSON (#3323) 2024-02-07 15:07:55 +00:00
Koen Vlaswinkel
f2eea4025a Merge pull request #3322 from github/koesie10/suggest-box-command-palette
Fix not being able to open command palette in suggest box
2024-02-07 14:36:19 +01:00
Koen Vlaswinkel
fdb4d42bf3 Add comment about returnFocus 2024-02-07 14:22:47 +01:00
Koen Vlaswinkel
688aa304f5 Extract AccessPathSuggestBox component
This extracts all common functionality from the various model editor
suggest box components into a single component that can be shared by
the model editor suggest box components to make improvements easier.
2024-02-07 14:00:08 +01:00
Robert
65a84f940d Delete src/additional-typings.d.ts 2024-02-07 12:50:52 +00:00
Koen Vlaswinkel
b74306249e Fix not being able to open command palette in suggest box 2024-02-07 13:41:29 +01:00
Shati Patel
57faebd5b9 Minor changelog update (#3321) 2024-02-06 16:28:02 +00:00
Koen Vlaswinkel
303e04ba64 Merge pull request #3320 from github/koesie10/access-paths-query-bqrs
Parse new access paths query BQRS output
2024-02-06 17:03:02 +01:00
Shati Patel
cc2e28c886 CodeQL model editor: Always show the "Generate" button for Ruby DBs (#3319) 2024-02-06 15:27:42 +00:00
Koen Vlaswinkel
c6e7bcd8fa Merge branch 'main' into koesie10/access-paths-query-bqrs 2024-02-06 16:21:11 +01:00
Koen Vlaswinkel
a03863cd4b Merge pull request #3317 from github/koesie10/sarif-comparison
Fix bug in SARIF comparison
2024-02-06 16:15:35 +01:00
Shati Patel
19d85a73e1 CodeQL model editor: Use suggest box for type path suggestions (#3316) 2024-02-06 15:11:56 +00:00
Koen Vlaswinkel
6030137f43 Merge pull request #3318 from github/koesie10/access-paths-configurable-query-constraints
Make query constraints for access paths query configurable
2024-02-06 15:38:43 +01:00
Koen Vlaswinkel
11e0f49135 Parse new access paths query BQRS output 2024-02-06 15:09:46 +01:00
Shati Patel
b35d6cbb3a Don't select a model editor row when you click the suggest box (#3307) 2024-02-06 14:01:21 +00:00
Koen Vlaswinkel
0477a9dee3 Make query constraints for access paths query configurable 2024-02-06 14:07:06 +01:00
Koen Vlaswinkel
c5db597676 Add tests for SARIF diff 2024-02-06 13:48:37 +01:00
Koen Vlaswinkel
73b6cc475c Fix bug in SARIF comparison
The SARIF comparison code was comparing the index of the artifact
location, which is not useful for comparison and may differ between runs
of very similar queries. This adds a function to convert a SARIF result
to a canonical form, which removes the index from the artifact location.
2024-02-06 13:40:09 +01:00
Shati Patel
7c233db4eb CodeQL model editor: Show access path suggestions in the webview (#3305) 2024-02-05 14:16:38 +00:00
Koen Vlaswinkel
ad5ae27a0d Merge pull request #3315 from github/koesie10/nightly-distribution-check
Execute a distribution check when changing the CLI channel
2024-02-05 14:36:02 +01:00
Koen Vlaswinkel
e9c7331c29 Execute a distribution check when changing the CLI channel 2024-02-05 13:16:17 +01:00
Charis Kyriakou
bc4d74246a Stop allowing running MRVA with query outside of workspace (#3302) 2024-02-05 11:17:11 +00:00
Koen Vlaswinkel
70171807c7 Merge pull request #3314 from github/koesie10/skip-tab-tests
Skip suggest box tests using Tab
2024-02-05 09:41:32 +01:00
Koen Vlaswinkel
490b7fbe70 Merge pull request #3313 from github/github-action/bump-node-version
Bump Node version to v18.17.1
2024-02-02 16:30:11 +01:00
Koen Vlaswinkel
d1b81b3f86 Skip suggest box tests using Tab 2024-02-02 15:59:43 +01:00
github-actions[bot]
7f975cc696 Bump Node version to v18.17.1 2024-02-02 12:25:12 +00:00
dependabot[bot]
89ce6cfde9 Bump @storybook/react-webpack5 in /extensions/ql-vscode (#3311)
Bumps [@storybook/react-webpack5](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-webpack5) from 7.6.7 to 7.6.12.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v7.6.12/code/frameworks/react-webpack5)

---
updated-dependencies:
- dependency-name: "@storybook/react-webpack5"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 16:06:42 +00:00
dependabot[bot]
3aea6874b5 Bump mini-css-extract-plugin in /extensions/ql-vscode (#3308)
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 2.7.6 to 2.7.7.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.6...v2.7.7)

---
updated-dependencies:
- dependency-name: mini-css-extract-plugin
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 14:30:43 +00:00
dependabot[bot]
ae173f24f0 Bump @storybook/theming from 7.6.9 to 7.6.12 in /extensions/ql-vscode (#3309)
Bumps [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) from 7.6.9 to 7.6.12.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v7.6.12/code/lib/theming)

---
updated-dependencies:
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 14:15:49 +00:00
dependabot[bot]
ed2698ff01 Bump css-loader from 6.9.0 to 6.10.0 in /extensions/ql-vscode (#3310)
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 6.9.0 to 6.10.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v6.9.0...v6.10.0)

---
updated-dependencies:
- dependency-name: css-loader
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 14:15:05 +00:00
dependabot[bot]
7151a498c8 Bump @babel/preset-env from 7.23.7 to 7.23.9 in /extensions/ql-vscode (#3312)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.7 to 7.23.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.9/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 14:14:50 +00:00
Robert
e582e63685 Merge pull request #3299 from github/robertbrignull/releases_tests
Use slightly more realistic tests data for ReleasesApiConsumer
2024-02-01 13:00:28 +00:00
Robert
600a5de0e9 Unexport unused type 2024-02-01 12:41:41 +00:00
Koen Vlaswinkel
f24487833e Merge pull request #3306 from github/koesie10/remove-bundled-ruby-query
Remove bundled Ruby queries
2024-02-01 12:45:18 +01:00
Koen Vlaswinkel
4e967d8111 Fix tests when there are no bundled queries 2024-02-01 12:10:46 +01:00
Koen Vlaswinkel
15c3805ad3 Remove bundled Ruby queries
This removes the bundled Ruby queries since these queries are in a
CodeQL release now, so we should never find that the queries don't
exist.
2024-02-01 12:01:40 +01:00
Shati Patel
cab963cc88 Send access path suggestions to the model editor view (#3304) 2024-02-01 09:49:05 +00:00
Shati Patel
c6c27f4ca3 Add access path suggestions to MaD model for Ruby (#3303) 2024-01-31 16:15:41 +00:00
Koen Vlaswinkel
b7ee9f9dd4 Merge pull request #3297 from github/koesie10/more-consistency-information
Add more information for consistency check errors
2024-01-31 16:26:45 +01:00
Koen Vlaswinkel
b3284d6760 Merge pull request #3298 from github/koesie10/try-fix-flaky-suggestbox-tab
Wait for options to be shown and to be removed when pressing Tab
2024-01-31 16:26:33 +01:00
Koen Vlaswinkel
e9e98403a9 Merge pull request #3301 from github/koesie10/improve-ruby-access-path-parsing
Fix Ruby method parsing for methods containing brackets
2024-01-31 16:26:10 +01:00
Charis Kyriakou
74c101bb51 Improve handling of unknown QL pack roots for multi-query MRVAs (#3289) 2024-01-31 13:53:07 +00:00
github-actions[bot]
ca8c48418f Bump version to v1.12.2 (#3300)
Co-authored-by: github-actions[bot] <github-actions@github.com>
2024-01-31 13:14:58 +00:00
Koen Vlaswinkel
8c72fe0f8d Fix Ruby method parsing for methods containing brackets
This fixes parsing of access paths for Ruby methods that contain square
brackets, such as `Liquid::Context#[]`. The previous implementation
would incorrectly stop capturing at the `]` character, resulting in a
method name of `[` for an access path of `Method[[]].ReturnValue`. This
fixes it by switching to the shared access path parsing code, which
correctly handles square brackets.
2024-01-31 14:07:54 +01:00
Shati Patel
9cd6dafdf4 Functions for running "access path suggestions" queries (#3294) 2024-01-31 13:04:08 +00:00
Koen Vlaswinkel
08dfd1a211 Add more information for consistency check errors 2024-01-31 13:59:32 +01:00
Shati Patel
9b07be00c7 v1.12.1 (#3296) 2024-01-31 12:52:43 +00:00
Koen Vlaswinkel
820989a8c5 Wait for option to not be present 2024-01-31 13:29:28 +01:00
Robert
9401c34509 Convert "gets correct assets for a release" to use the same example response as the other tests 2024-01-31 11:58:35 +00:00
Robert
750c0973a9 Populate name field in test data 2024-01-31 11:55:56 +00:00
Koen Vlaswinkel
6bd8c8ee78 Wait for options to be shown before pressing Tab 2024-01-31 12:36:09 +01:00
Shati Patel
841efbf826 Add AccessPathSuggestions to "models as data" model (#3295) 2024-01-31 10:15:07 +00:00
Shati Patel
8c679ab569 CodeQL model editor: Add functions for parsing complex access path suggestion options (#3292) 2024-01-30 16:17:40 +00:00
Robert
0391f972ad Merge pull request #3287 from github/robertbrignull/move_language_pack
Move language and pack to top level of variant analysis object
2024-01-30 15:22:06 +00:00
Koen Vlaswinkel
e3a9c06e3c Merge pull request #3288 from github/koesie10/suggest-box-tab
Allow using Tab to select the active option in the suggest box
2024-01-30 15:47:56 +01:00
Robert
a76dc8f0de Merge branch 'main' into robertbrignull/move_language_pack 2024-01-30 14:32:53 +00:00
Robert
222d3edaff Merge pull request #3293 from github/robertbrignull/variant-analysis-history-test-dto
Don't compare internal and dto types in variant-analysis-history.test.ts
2024-01-30 14:32:39 +00:00
Robert
31ea6aded7 Change test data so variant analyses have different IDs 2024-01-30 12:39:15 +00:00
Robert
b92e98fce4 Don't compare internal and dto types 2024-01-30 12:13:06 +00:00
Robert
a228dba0ee Merge branch 'main' into robertbrignull/move_language_pack 2024-01-29 16:34:13 +00:00
Robert
5367bdea9c Merge pull request #3290 from github/robertbrignull/history-tests-dtos
Don't accidentally mix DTO and non-DTO types in query-history-store.test.ts
2024-01-29 16:33:37 +00:00
Koen Vlaswinkel
978e48fe2c Merge pull request #3259 from github/koesie10/improve-error-message
Improve CLI error messages
2024-01-29 17:29:51 +01:00
Robert
98764a156a Introduce writeRawQueryHistory to ensure we're always writing Dto types 2024-01-29 15:53:39 +00:00
Robert
a85989e202 Change let to const where possible 2024-01-29 15:52:55 +00:00
Koen Vlaswinkel
8c696e10af Allow using Tab to select the active option 2024-01-29 14:53:36 +01:00
Koen Vlaswinkel
dc8062b784 Merge pull request #3242 from github/koesie10/suggest-box-open-key
Open suggest box with Ctrl + Space
2024-01-29 14:49:23 +01:00
Koen Vlaswinkel
ac5ed7b30c Merge remote-tracking branch 'origin/main' into koesie10/improve-error-message 2024-01-29 14:47:36 +01:00
Koen Vlaswinkel
c5e9ef15f2 Fix order of args and stderr in error message 2024-01-29 14:46:52 +01:00
Robert
e70b083828 Move language and pack to top level of variant analysis object 2024-01-29 12:11:22 +00:00
Charis Kyriakou
1b84906bce Add basic multi-query support to MRVA results view header (#3286) 2024-01-29 12:00:39 +00:00
Nora
1f24cd1a7f Merge pull request #3275 from github/nora/add-eslint-deprecation
Start using eslint-plugin-deprecation to find deprecated code
2024-01-26 11:46:12 +01:00
Nora
e126dfbe36 Remove 0 for parseInt 2024-01-25 16:19:31 +00:00
Charis Kyriakou
0e2c03f572 Rename queryPackDir -> targetPackPath (#3284) 2024-01-25 15:44:25 +00:00
Henry Mercer
95b082d56a Merge pull request #3283 from github/github-action/bump-cli
Bump CLI Version to v2.16.1 for integration tests
2024-01-25 15:28:04 +00:00
github-actions[bot]
56dd102db8 Bump CLI version from v2.16.0 to v2.16.1 for integration tests 2024-01-25 14:06:36 +00:00
dependabot[bot]
f5b6b4a9f2 Bump zip-a-folder from 3.1.5 to 3.1.6 in /extensions/ql-vscode (#3282)
Bumps [zip-a-folder](https://github.com/maugenst/zip-a-folder) from 3.1.5 to 3.1.6.
- [Commits](https://github.com/maugenst/zip-a-folder/commits)

---
updated-dependencies:
- dependency-name: zip-a-folder
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-25 13:35:57 +00:00
dependabot[bot]
5fc88bed32 Bump @types/react-dom from 18.2.17 to 18.2.18 in /extensions/ql-vscode (#3280)
Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 18.2.17 to 18.2.18.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-25 13:35:24 +00:00
dependabot[bot]
05e5e32854 Bump markdownlint-cli2 from 0.11.0 to 0.12.1 in /extensions/ql-vscode (#3279)
Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.11.0 to 0.12.1.
- [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.11.0...v0.12.1)

---
updated-dependencies:
- dependency-name: markdownlint-cli2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-25 13:35:08 +00:00
dependabot[bot]
554d8854a1 Bump styled-components from 6.1.1 to 6.1.8 in /extensions/ql-vscode (#3281)
Bumps [styled-components](https://github.com/styled-components/styled-components) from 6.1.1 to 6.1.8.
- [Release notes](https://github.com/styled-components/styled-components/releases)
- [Commits](https://github.com/styled-components/styled-components/compare/v6.1.1...v6.1.8)

---
updated-dependencies:
- dependency-name: styled-components
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-25 13:34:25 +00:00
dependabot[bot]
c9cb7eaa38 Bump storybook from 7.6.7 to 7.6.10 in /extensions/ql-vscode (#3278)
Bumps [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) from 7.6.7 to 7.6.10.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v7.6.10/code/lib/cli)

---
updated-dependencies:
- dependency-name: storybook
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-25 13:33:34 +00:00
Nora
70461d857c Use nanoid 2024-01-25 13:17:12 +00:00
Charis Kyriakou
e1ff113701 Fix version used in multi-query pack create constraint (#3277) 2024-01-25 12:40:23 +00:00
Charis Kyriakou
2f66be3fcc Tidy up uses of QueryPackDetail object fields (#3276) 2024-01-25 11:01:11 +00:00
Nora
12a3af0a75 Make random number bigger than 1000 2024-01-25 09:47:19 +00:00
Charis Kyriakou
594f422510 Add support for running multiple queries in MRVA (#3274) 2024-01-25 09:12:50 +00:00
Nora
d5932fc1de Use storybook type 2024-01-25 08:25:33 +00:00
Nora
8397f58d0b Disable rule for storybook types 2024-01-24 17:27:52 +00:00
Nora
dd9ca80820 Solution for unique numbers 2024-01-24 17:20:05 +00:00
Nora
deab3e6175 Update simple deprecations 2024-01-24 16:53:47 +00:00
Nora
a3f9518b78 Set up deprecation plugin 2024-01-24 16:45:02 +00:00
Charis Kyriakou
79fd44f696 Add run-remote-query.ts to CLI tests workflow triggers (#3272) 2024-01-24 12:27:25 +00:00
Robert
69ff7cb0e8 Merge pull request #3273 from github/robertbrignull/uri_fspath
Use Uri to convert paths to platform specific fs paths
2024-01-24 12:11:12 +00:00
Nora
3daefcdffc Merge pull request #3215 from github/nora/add-e2e-tests
E2E test prototype
2024-01-24 12:59:50 +01:00
Nora
a6f7ee3df8 Remove scheduled runs 2024-01-24 11:35:12 +00:00
Robert
92c4532cc2 Use Uri to convert paths to platform specific fs paths 2024-01-24 11:23:54 +00:00
Charis Kyriakou
0265befb26 Move query language to the QlPackDetails (#3270) 2024-01-23 16:13:06 +00:00
Charis Kyriakou
aada35187f Move QL pack file path to the QlPackDetails (#3269) 2024-01-23 14:54:42 +00:00
Charis Kyriakou
e612764c59 Move findPackRoot to ql.ts (#3268) 2024-01-23 13:29:46 +00:00
Shati Patel
e834d32a29 Add new feature flag for "access path suggestions" (#3266) 2024-01-23 12:04:22 +00:00
Charis Kyriakou
67e2ff3d4e Move QL pack root path to the QlPackDetails (#3267) 2024-01-23 12:00:09 +00:00
Charis Kyriakou
9285b0272d Push QL pack details creation to commands (#3262) 2024-01-23 10:17:13 +00:00
Dave Bartolomeo
445aa81f5a Merge pull request #3263 from github/dbartol/extensible-failure 2024-01-22 13:29:35 -05:00
Dave Bartolomeo
2cd1a99273 Fix another missing await 2024-01-22 13:08:39 -05:00
Dave Bartolomeo
b6bf683852 Fix PR feedback 2024-01-22 12:50:58 -05:00
Charis Kyriakou
5bb724b5be Rename getQlPackPath to getQlPackFilePath (#3265) 2024-01-22 16:49:42 +00:00
Shati Patel
5664844aba CodeQL model editor: Don't highlight row when clicking inside text box (#3264) 2024-01-22 16:29:24 +00:00
Charis Kyriakou
9644e5daee Stop variant analysis from published pack if no language selected (#3261) 2024-01-22 15:59:50 +00:00
Dave Bartolomeo
d7f01dcb29 Add missing await 2024-01-22 10:37:22 -05:00
Dave Bartolomeo
509e273108 Fix MRVA integration test failure 2024-01-22 10:21:35 -05:00
Nora
5c513bc821 Add note to readme 2024-01-22 14:15:27 +00:00
Nora
342dbfb5a9 Silence output 2024-01-22 14:05:57 +00:00
Charis Kyriakou
28aadb183b Use object for pack generation details (#3260) 2024-01-22 13:59:41 +00:00
Nora
6bf73dc196 Fix typo 2024-01-22 13:07:21 +00:00
Shati Patel
83148f6d57 Add test for "promptForDatabase" (#3248) 2024-01-22 11:09:12 +00:00
Nora
988a113cb3 Shorten playwright config 2024-01-19 17:42:41 +00:00
Nora
5136c95da7 Run E2E every night of the week, on merge to main and push to main 2024-01-19 17:38:18 +00:00
Nora
6741f0c431 Merge branch 'main' into nora/add-e2e-tests 2024-01-19 18:32:37 +01:00
Koen Vlaswinkel
ebf06b9af6 Update CHANGELOG 2024-01-19 12:28:04 +01:00
Koen Vlaswinkel
a85a4b41f5 Improve CLI error messages 2024-01-19 12:07:42 +01:00
Nora
8690f76968 Merge pull request #3255 from github/dependabot/npm_and_yarn/extensions/ql-vscode/prettier-3.2.4
Bump prettier from 3.1.1 to 3.2.4 in /extensions/ql-vscode
2024-01-19 11:40:30 +01:00
Nora
fc41360bad Check in npm run format 2024-01-19 10:15:00 +00:00
dependabot[bot]
a2ebc69d3a Bump prettier from 3.1.1 to 3.2.4 in /extensions/ql-vscode
Bumps [prettier](https://github.com/prettier/prettier) from 3.1.1 to 3.2.4.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.1.1...3.2.4)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-18 20:58:32 +00:00
dependabot[bot]
f1a915e46c Bump css-loader from 6.8.1 to 6.9.0 in /extensions/ql-vscode (#3256)
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 6.8.1 to 6.9.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v6.8.1...v6.9.0)

---
updated-dependencies:
- dependency-name: css-loader
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-18 12:56:46 -08:00
Nora
2d1663d046 Merge pull request #3253 from github/dependabot/npm_and_yarn/extensions/ql-vscode/typescript-eslint/eslint-plugin-6.19.0
Bump @typescript-eslint/eslint-plugin from 6.18.0 to 6.19.0 in /extensions/ql-vscode
2024-01-18 16:11:27 +01:00
Nora
66be432610 Merge pull request #3254 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook/addon-a11y-7.6.9
Bump @storybook/addon-a11y from 7.6.4 to 7.6.9 in /extensions/ql-vscode
2024-01-18 16:10:52 +01:00
Nora
4ae4745a86 Merge pull request #3257 from github/dependabot/npm_and_yarn/extensions/ql-vscode/storybook/theming-7.6.9
Bump @storybook/theming from 7.6.7 to 7.6.9 in /extensions/ql-vscode
2024-01-18 16:10:14 +01:00
Dave Bartolomeo
fef394b79d Merge pull request #3233 from github/dbartol/mrva-multi-bundle
Use CLI to bundle packs for MRVA
2024-01-18 09:10:21 -05:00
dependabot[bot]
ccfba04d97 Bump @storybook/theming from 7.6.7 to 7.6.9 in /extensions/ql-vscode
Bumps [@storybook/theming](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/theming) from 7.6.7 to 7.6.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v7.6.9/code/lib/theming)

---
updated-dependencies:
- dependency-name: "@storybook/theming"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-18 13:49:17 +00:00
dependabot[bot]
c89382ceb7 Bump @storybook/addon-a11y from 7.6.4 to 7.6.9 in /extensions/ql-vscode
Bumps [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) from 7.6.4 to 7.6.9.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v7.6.9/code/addons/a11y)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-18 13:48:04 +00:00
dependabot[bot]
8beaa7cbc0 Bump @typescript-eslint/eslint-plugin in /extensions/ql-vscode
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.18.0 to 6.19.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.19.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-18 13:47:43 +00:00
Nora
477c6b3819 Merge pull request #3252 from github/dependabot/github_actions/actions/dependency-review-action-4
Bump actions/dependency-review-action from 3 to 4
2024-01-18 14:43:21 +01:00
dependabot[bot]
978e00a252 Bump actions/dependency-review-action from 3 to 4
Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 3 to 4.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-18 13:28:48 +00:00
Koen Vlaswinkel
5c132884a4 Merge remote-tracking branch 'origin/main' into koesie10/suggest-box-open-key 2024-01-18 10:25:26 +01:00
Koen Vlaswinkel
8e1fc2ca96 Merge pull request #3247 from github/koesie10/suggest-box-diagnostics
Add diagnostics to suggest box
2024-01-18 10:24:37 +01:00
Koen Vlaswinkel
d6e4b7ef56 Merge remote-tracking branch 'origin/main' into koesie10/suggest-box-diagnostics 2024-01-18 10:04:52 +01:00
Koen Vlaswinkel
4e81d41086 Add comment about Storybook test diagnostics 2024-01-18 10:03:45 +01:00
Koen Vlaswinkel
ac5038cf50 Merge pull request #3244 from github/koesie10/suggest-box-highlight
Add highlighting to items in suggest box
2024-01-18 10:02:17 +01:00
Dave Bartolomeo
d7e5552481 Fix broken test code 2024-01-17 17:48:44 -05:00
Dave Bartolomeo
65fbb6bca8 Fix PR feedback 2024-01-17 14:20:14 -05:00
Dave Bartolomeo
1d275985d0 Fix PR feedback 2024-01-17 12:49:20 -05:00
Dave Bartolomeo
55306c9a93 Fix PR feedback 2024-01-17 12:47:06 -05:00
Robert
ec6a725715 Merge pull request #3251 from github/robertbrignull/test_published_pack
Add an integration test of runVariantAnalysisFromPublishedPack
2024-01-17 16:15:23 +00:00
Robert
6b1a056ae6 Avoid using path separator in test data 2024-01-17 15:51:27 +00:00
Koen Vlaswinkel
75065f3148 Merge pull request #3230 from github/koesie10/suggest-box
Create `SuggestBox` component
2024-01-17 15:56:51 +01:00
Robert
1010239c29 Add a test of runVariantAnalysisFromPublishedPack 2024-01-17 14:31:06 +00:00
Koen Vlaswinkel
2b6ec73147 Merge pull request #3250 from github/koesie10/rename-ide-server
Remove outdated IDE server name in favor of language client
2024-01-17 15:08:25 +01:00
Charis Kyriakou
97980371c8 Skip multi-query MRVAs from query history (#3249) 2024-01-17 13:52:03 +00:00
Koen Vlaswinkel
479aa683ee Rename IDE server to language client 2024-01-17 11:40:00 +01:00
Koen Vlaswinkel
1cb46d2604 Rename ide-server.ts to language-client.ts 2024-01-17 11:37:07 +01:00
Shati Patel
be22964113 Send telemetry for addDatabaseSourceToWorkspace setting (#3238) 2024-01-16 17:05:59 +00:00
Robert
db3550a18c Merge pull request #3245 from github/robertbrignull/multi-query-published-pack
Add prototype implementation for codeQL.runVariantAnalysisPublishedPack
2024-01-16 16:54:04 +00:00
Robert
91a96da2ad Start progress bar earlier 2024-01-16 16:39:30 +00:00
Robert
9dc37ebf33 Return when we detect no queries 2024-01-16 16:33:16 +00:00
Robert
ff8def3e7d Use join instead of slash 2024-01-16 16:32:09 +00:00
Koen Vlaswinkel
39c17291aa Add diagnostics to suggest box
This adds the ability for consumers of the suggest box to add
diagnostics to the suggest box. When a diagnostic is returned for a
value, the input will be shown with a red border.
2024-01-16 16:56:32 +01:00
Nora
a6a7a5c5cb Merge pull request #3246 from github/nora/remove-deprecated-jest-syntax
Remove deprecated jest syntac
2024-01-16 16:44:09 +01:00
Nora
70ce93cbb3 Replace toBeCalledTimes 2024-01-16 15:28:51 +00:00
Nora
abc71b5102 Replace toBeCalledWith 2024-01-16 15:28:07 +00:00
Nora
fed110f65f Replace toBeCalled 2024-01-16 15:26:41 +00:00
Robert
174a38a16a Make placeholder text more general 2024-01-16 15:11:38 +00:00
Robert
b4250218d5 Implement the command to download a published pack 2024-01-16 15:11:38 +00:00
github-actions[bot]
5948008c99 Bump CLI version from v2.15.5 to v2.16.0 for integration tests (#3243)
Co-authored-by: github-actions[bot] <github-actions@github.com>
2024-01-16 15:09:30 +00:00
Koen Vlaswinkel
070f0ca9b7 Add highlighting to items in suggest box
This adds highlighting of the currently typed text into the shown items
of the suggest box.
2024-01-16 16:05:51 +01:00
Charis Kyriakou
318136f5e5 Allow multiple file URIs to be passed into prepareRemoteQueryRun (#3241) 2024-01-16 15:05:24 +00:00
Koen Vlaswinkel
a3ade9984d Make mocking helpers independent of vscode 2024-01-16 15:39:14 +01:00
Koen Vlaswinkel
4429385dfd Open suggest box with Ctrl + Space
This adds a keyboard shortcut to open the suggest box when it's closed.
This matches the behavior in VS Code itself.
2024-01-16 14:24:09 +01:00
Shati Patel
f993258a27 CodeQL model editor: Make Type a selectable model kind for Ruby (#3224) 2024-01-16 13:17:26 +00:00
Shati Patel
c5517e0aea CodeQL model editor: Add support for free text input in type models (#3217) 2024-01-16 13:03:53 +00:00
Charis Kyriakou
8c0a8e07b2 Tidy up variant analysis commands (#3240) 2024-01-16 12:19:37 +00:00
Robert
a1572463a6 Merge pull request #3239 from github/robertbrignull/multi-query-commands
Add stubs of commands for multi-query support
2024-01-16 10:24:29 +00:00
Koen Vlaswinkel
545902843d Merge pull request #3222 from github/koesie10/suggest-box-helper-functions
Add helper functions for suggestion box
2024-01-16 09:35:12 +01:00
Robert
1a7981a22d Add codeQL.runVariantAnalysisPublishedPack command 2024-01-15 17:08:18 +00:00
Robert
1bc560518f Add codeQL.runVariantAnalysisContextExplorer command 2024-01-15 17:07:41 +00:00
Shati Patel
281f8eeb7a CodeQL model editor: support saving single/selected models (#3156) 2024-01-15 16:51:46 +00:00
Dave Bartolomeo
f53826c09d Better dependency version assertions 2024-01-14 10:20:55 -05:00
Dave Bartolomeo
b16aeb3887 Fix property name, and expand another path 2024-01-14 10:17:35 -05:00
Dave Bartolomeo
ee73639720 Expand short paths before calling codeql pack bundle 2024-01-13 14:30:01 -05:00
Dave Bartolomeo
9d2190a88d Add text if pack is empty 2024-01-12 13:03:21 -05:00
Dave Bartolomeo
6d308f8688 Add missing change 2024-01-12 12:44:16 -05:00
Dave Bartolomeo
61933c34d5 Dump pack contents when expected file not found 2024-01-12 12:41:36 -05:00
Dave Bartolomeo
e03c2b132c Custom message for assertions about files existing in packs 2024-01-12 10:42:34 -05:00
Dave Bartolomeo
9c42c6a851 Allow CodeQL checkout to be named ql
This makes it easier for cross-repo development with `semmle-code`, where the `codeql` repo is in a submodule in a directory named `ql`.
2024-01-12 09:30:13 -05:00
Nora
283d0070f7 Ignore playwright config on dead code 2024-01-12 14:05:51 +00:00
Nora
d3c7241854 fix new config location in workflow 2024-01-12 13:52:39 +00:00
Nora
0b9e4e33b2 move config and fix tsconfig error 2024-01-12 13:36:11 +00:00
Nora
b4a66a7690 Update readme 2024-01-12 13:35:51 +00:00
Koen Vlaswinkel
ea1419add2 Merge pull request #3234 from github/koesie10/remove-jest-runner-installed-extensions
Simplify custom Jest test runner
2024-01-12 11:26:18 +01:00
Koen Vlaswinkel
0534cb7514 Simplify custom Jest test runner
The custom Jest test runner was originally written to install the
required extensions for the CLI integration tests. This is no longer
necessary as of https://github.com/github/vscode-codeql/pull/3232, so
we can remove all code that deals with downloading VS Code and
installing extensions. The download of VS Code will now be handled by
the base `VSCodeTestRunner`.
2024-01-12 09:49:20 +01:00
Dave Bartolomeo
2aacea4176 Fix test expectation 2024-01-11 18:58:44 -05:00
Dave Bartolomeo
2ccd99fc5b Don't use ${workspace} in test pack 2024-01-11 18:40:03 -05:00
Dave Bartolomeo
bdc94a3b23 Remove unused export 2024-01-11 18:05:00 -05:00
Dave Bartolomeo
29d8c65b59 Use codeql pack create --mrva if available 2024-01-11 17:43:42 -05:00
Dave Bartolomeo
fb63ec7db0 Consume codeql version JSON output for feature capabilities 2024-01-11 21:59:54 +00:00
Dave Bartolomeo
b67efeeacd Merge pull request #3232 from github/dbartol/new-test-api
Switch to built-in VS Code test UI unconditionally
2024-01-11 16:48:56 -05:00
Dave Bartolomeo
4b3a008a45 Merge branch 'main' into dbartol/new-test-api 2024-01-11 12:22:18 -05:00
Dave Bartolomeo
1186026315 Remove old unit tests 2024-01-11 11:56:51 -05:00
Dave Bartolomeo
2ba23ceead Fold TestManagerBase and related functions into TestManager 2024-01-11 11:48:54 -05:00
dependabot[bot]
c065c44ff3 Bump applicationinsights from 2.9.1 to 2.9.2 in /extensions/ql-vscode (#3228)
Bumps [applicationinsights](https://github.com/microsoft/ApplicationInsights-node.js) from 2.9.1 to 2.9.2.
- [Release notes](https://github.com/microsoft/ApplicationInsights-node.js/releases)
- [Commits](https://github.com/microsoft/ApplicationInsights-node.js/compare/2.9.1...2.9.2)

---
updated-dependencies:
- dependency-name: applicationinsights
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 08:44:11 -08:00
dependabot[bot]
0d2b7916ee Bump msw from 2.0.11 to 2.0.13 in /extensions/ql-vscode (#3227)
Bumps [msw](https://github.com/mswjs/msw) from 2.0.11 to 2.0.13.
- [Release notes](https://github.com/mswjs/msw/releases)
- [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mswjs/msw/compare/v2.0.11...v2.0.13)

---
updated-dependencies:
- dependency-name: msw
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 08:43:49 -08:00
dependabot[bot]
766f54b76e Bump @storybook/manager-api from 7.6.6 to 7.6.7 in /extensions/ql-vscode (#3226)
Bumps [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) from 7.6.6 to 7.6.7.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v7.6.7/code/lib/manager-api)

---
updated-dependencies:
- dependency-name: "@storybook/manager-api"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 08:43:22 -08:00
dependabot[bot]
c485e39b07 Bump @testing-library/dom from 9.3.3 to 9.3.4 in /extensions/ql-vscode (#3225)
Bumps [@testing-library/dom](https://github.com/testing-library/dom-testing-library) from 9.3.3 to 9.3.4.
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v9.3.3...v9.3.4)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 08:42:57 -08:00
Dave Bartolomeo
d8968db1b9 Changelog entry 2024-01-11 11:34:35 -05:00
Charis Kyriakou
40ba2c03d3 Rename variant analysis mapping functions (#3231) 2024-01-11 16:11:01 +00:00
Dave Bartolomeo
ac93074f94 Merge remote-tracking branch 'origin/main' into dbartol/new-test-api 2024-01-11 15:48:17 +00:00
Dave Bartolomeo
1dc6111fba Switch to built-in VS Code test UI unconditionally 2024-01-11 10:47:48 -05:00
Nora
f9166f304b Merge pull request #3229 from github/dependabot/npm_and_yarn/extensions/ql-vscode/eslint-plugin-prettier-5.1.3
Bump eslint-plugin-prettier from 5.0.1 to 5.1.3 in /extensions/ql-vscode
2024-01-11 15:55:26 +01:00
Koen Vlaswinkel
6ec727a8a2 Add tests for SuggestBox component 2024-01-11 15:28:21 +01:00
dependabot[bot]
b4da6c71f3 Bump eslint-plugin-prettier from 5.0.1 to 5.1.3 in /extensions/ql-vscode
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.0.1 to 5.1.3.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.0.1...v5.1.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-11 13:58:28 +00:00
Nora
f43c5274cf Merge pull request #3223 from github/version/bump-to-v1.12.1
Bump version to v1.12.1
2024-01-11 14:37:52 +01:00
Nora
1a135c501d Move changelog entry to correct section 2024-01-11 13:23:00 +00:00
Koen Vlaswinkel
0df0cca9d8 Create SuggestBox component 2024-01-11 14:13:02 +01:00
Koen Vlaswinkel
519833e7a4 Merge pull request #3218 from github/koesie10/parse-access-paths
Add functions for parsing and validating access paths
2024-01-11 13:34:01 +01:00
github-actions[bot]
d77261aaa5 Bump version to v1.12.1 2024-01-11 12:25:03 +00:00
Nora
24dff5981e Merge pull request #3221 from github/v1.12.0
v1.12.0
2024-01-11 13:23:32 +01:00
Koen Vlaswinkel
7f730d24b0 Add helper functions for suggestion box
This adds some helper functions that will be used for a suggestion box
in the future. There is one helper function for highlighting part of a
text case-insensitively. Another helper function will try to find
followup options based on a list of tokens.

The tests for these functions use access paths as input, but these
functions are not intended to be specific to access paths. They can be
used for any list of options/string.
2024-01-11 12:09:13 +01:00
Shati Patel
77f84c6ca9 Improve user experience when no database is selected (#3214) 2024-01-11 09:41:44 +00:00
Koen Vlaswinkel
ea6e148df9 Add functions for parsing and validating access paths
This adds functions for parsing and validating access paths to prepare
for future functionality where we're going to be parsing and validating
access paths.
2024-01-10 16:20:13 +01:00
Nora
d022623a9d fix artifacts path 2024-01-10 10:42:40 +00:00
Nora
c7a1cf7236 Add test, config and action 2024-01-10 10:01:59 +00:00
Koen Vlaswinkel
38743c6180 wip: move CLI installation 2024-01-09 10:56:22 +01:00
Koen Vlaswinkel
d1a26d3893 wip: add Docker Compose configuration for code server 2024-01-09 10:41:38 +01:00
476 changed files with 23549 additions and 17104 deletions

16
.github/codeql/queries/ProgressBar.qll vendored Normal file
View File

@@ -0,0 +1,16 @@
import javascript
class WithProgressCall extends CallExpr {
WithProgressCall() { this.getCalleeName() = "withProgress" }
predicate usesToken() { exists(this.getTokenParameter()) }
Parameter getTokenParameter() { result = this.getArgument(0).(Function).getParameter(1) }
Property getCancellableProperty() { result = this.getArgument(1).(ObjectExpr).getPropertyByName("cancellable") }
predicate isCancellable() {
this.getCancellableProperty().getInit().(BooleanLiteral).getBoolValue() =
true
}
}

View File

@@ -0,0 +1,20 @@
/**
* @name Using token for non-cancellable progress bar
* @kind problem
* @problem.severity warning
* @id vscode-codeql/progress-not-cancellable
* @description If we call `withProgress` without `cancellable: true` then the
* token that is given to us should be ignored because it won't ever be cancelled.
* This makes the code more confusing as it tries to account for cases that can't
* happen. The fix is to either not use the token or make the progress bar cancellable.
*/
import javascript
import ProgressBar
from WithProgressCall t
where not t.isCancellable() and t.usesToken()
select t,
"The $@ should not be used when the progress bar is not cancellable. Either stop using the $@ or mark the progress bar as cancellable.",
t.getTokenParameter(), t.getTokenParameter().getName(), t.getTokenParameter(),
t.getTokenParameter().getName()

View File

@@ -0,0 +1,18 @@
/**
* @name Don't ignore the token for a cancellable progress bar
* @kind problem
* @problem.severity warning
* @id vscode-codeql/token-not-used
* @description If we call `withProgress` with `cancellable: true` but then
* ignore the token that is given to us, it will lead to a poor user experience
* because the progress bar will appear to be canceled but it will not actually
* affect the background process. Either check the token and respect when it
* has been cancelled, or mark the progress bar as not cancellable.
*/
import javascript
import ProgressBar
from WithProgressCall t
where t.isCancellable() and not t.usesToken()
select t, "This progress bar is $@ but the token is not used. Either use the token or mark the progress bar as not cancellable.", t.getCancellableProperty(), "cancellable"

View File

@@ -13,6 +13,23 @@ updates:
# are unrelated to the Node version, so we allow those.
- dependency-name: "@types/node"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
groups:
octokit:
patterns:
- "@octokit/*"
update-types:
- "minor"
- "patch"
storybook:
patterns:
- "@storybook/*"
- "storybook"
testing-library:
patterns:
- "@testing-library/*"
typescript-eslint:
patterns:
- "@typescript-eslint/*"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
@@ -20,3 +37,10 @@ updates:
day: "thursday" # Thursday is arbitrary
labels:
- "Update dependencies"
- package-ecosystem: docker
directory: "extensions/ql-vscode/test/e2e"
schedule:
interval: "weekly"
day: "thursday" # Thursday is arbitrary
labels:
- "Update dependencies"

View File

@@ -5,8 +5,4 @@
Replace this with a description of the changes your pull request makes.
## Checklist
- [ ] [CHANGELOG.md](https://github.com/github/vscode-codeql/blob/main/extensions/ql-vscode/CHANGELOG.md) has been updated to incorporate all user visible changes made by this pull request.
- [ ] Issues have been created for any UI or other user-facing changes made by this pull request.
- [ ] _[Maintainers only]_ If this pull request makes user-facing changes that require documentation changes, open a corresponding docs pull request in the [github/codeql](https://github.com/github/codeql/tree/main/docs/codeql/codeql-for-visual-studio-code) repo and add the `ready-for-doc-review` label there.
Remember to update the [changelog](https://github.com/github/vscode-codeql/blob/main/extensions/ql-vscode/CHANGELOG.md) if there have been user-facing changes!

View File

@@ -11,6 +11,7 @@ on:
- extensions/ql-vscode/src/language-support/**
- extensions/ql-vscode/src/query-server/**
- extensions/ql-vscode/supported_cli_versions.json
- extensions/ql-vscode/src/variant-analysis/run-remote-query.ts
jobs:
find-nightly:

View File

@@ -13,4 +13,4 @@ jobs:
- name: 'Checkout Repository'
uses: actions/checkout@v4
- name: 'Dependency Review'
uses: actions/dependency-review-action@v3
uses: actions/dependency-review-action@v4

46
.github/workflows/e2e-tests.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: Run E2E Playwright tests
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
e2e-test:
name: E2E Test
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: extensions/ql-vscode/.nvmrc
cache: 'npm'
cache-dependency-path: extensions/ql-vscode/package-lock.json
- name: Install dependencies
working-directory: extensions/ql-vscode
run: npm ci
- name: Start containers
working-directory: extensions/ql-vscode/test/e2e
run: docker compose -f "docker-compose.yml" up -d --build
- name: Install Playwright Browsers
working-directory: extensions/ql-vscode
run: npx playwright install --with-deps
- name: Run Playwright tests
working-directory: extensions/ql-vscode/test/e2e
run: npx playwright test
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: extensions/ql-vscode/playwright-report/
retention-days: 30
- name: Stop containers
working-directory: extensions/ql-vscode/test/e2e
if: always()
run: docker compose -f "docker-compose.yml" down -v

View File

@@ -144,6 +144,19 @@ jobs:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
# Enable 8.3 filename creation. This is not required to run the extension but it is required for the unit tests to pass.
# This feature is currently enabled by default in Windows 11 for the C: drive and therefore we must maintain support for it.
# This setting needs to be enabled before files are created, i.e. before we checkout the repository.
- name: Enable 8.3 filenames
shell: pwsh
if: ${{ matrix.os == 'windows-latest' }}
run: |
$shortNameEnableProcess = Start-Process -FilePath fsutil.exe -ArgumentList ('8dot3name', 'set', '0') -Wait -PassThru
$shortNameEnableExitCode = $shortNameEnableProcess.ExitCode
if ($shortNameEnableExitCode -ne 0) {
exit $shortNameEnableExitCode
}
- name: Checkout
uses: actions/checkout@v4
with:

View File

@@ -134,7 +134,7 @@ jobs:
- name: Publish to Registry
run: |
npx vsce publish -p $VSCE_TOKEN --packagePath *.vsix
npx @vscode/vsce publish -p $VSCE_TOKEN --packagePath *.vsix
open-vsx-publish:
name: Publish to Open VSX Registry

4
.gitignore vendored
View File

@@ -19,3 +19,7 @@ artifacts/
# CodeQL metadata
.cache/
.codeql/
# E2E Reports
**/playwright-report/**
**/test-results/**

View File

@@ -28,6 +28,7 @@ Here are a few things you can do that will increase the likelihood of your pull
- [Integration tests that do require the VS Code API are located here](extensions/ql-vscode/src/vscode-tests).
- Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.
- Write a [good commit message](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
- Update the [changelog](https://github.com/github/vscode-codeql/blob/main/extensions/ql-vscode/CHANGELOG.md) if you are making user-facing changes.
## Setting up a local build

View File

@@ -21,13 +21,6 @@ To see what has changed in the last few versions of the extension, see the [Chan
This project will track new feature development in CodeQL and, whenever appropriate, bring that functionality to the Visual Studio Code experience.
## Dependencies
This extension depends on the following two extensions for required functionality. They will be installed automatically when you install VS Code CodeQL.
- [Test Adapter Converter](https://marketplace.visualstudio.com/items?itemName=ms-vscode.test-adapter-converter)
- [Test Explorer UI](https://marketplace.visualstudio.com/items?itemName=hbenl.vscode-test-explorer)
## Contributing
This project welcomes contributions. See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to build, install, and contribute.

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -1,5 +1,8 @@
# Node version
> [!NOTE]
> It should not be necessary to update the Node.js version manually. The [update-node-version.yml](https://github.com/github/vscode-codeql/blob/main/.github/workflows/update-node-version.yml) workflow runs daily and will open a pull request if the Node.js version needs to be updated.
The CodeQL for VS Code extension defines the version of Node.js that it is intended to run with. This Node.js version is used when running most CI and unit tests.
When running in production (i.e. as an extension for a VS Code application) it will use the Node.js version provided by VS Code. This can mean a different Node.js version is used by different users with different versions of VS Code.

View File

@@ -1,5 +1,6 @@
# Releasing (write access required)
1. Make sure the needed authentication keys are valid. Most likely the Azure DevOps PAT needs to be regenerated. See below.
1. Determine the new version number. We default to increasing the patch version number, but make our own judgement about whether a change is big enough to warrant a minor version bump. Common reasons for a minor bump could include:
- Making substantial new features available to all users. This can include lifting a feature flag.
- Breakage in compatibility with recent versions of the CLI.
@@ -60,7 +61,7 @@
## Secrets and authentication for publishing
Repository administrators, will need to manage the authentication keys for publishing to the VS Code marketplace and Open VSX. Each requires an authentication token. The VS Code marketplace token expires yearly.
Repository administrators, will need to manage the authentication keys for publishing to the VS Code marketplace and Open VSX. Each requires an authentication token.
To regenerate the Open VSX token:
@@ -69,4 +70,4 @@ To regenerate the Open VSX token:
1. Go to the [Access Tokens](https://open-vsx.org/user-settings/tokens) page and generate a new token.
1. Update the secret in the `publish-open-vsx` environment in the project settings.
To regenerate the VSCode Marketplace token, please see our internal documentation. Note that Azure DevOps PATs expire every 90 days and must be regenerated.
To regenerate the VSCode Marketplace token, please see our internal documentation. Note that Azure DevOps PATs expire every 7 days and must be regenerated.

View File

@@ -53,18 +53,20 @@ choose to go through some of the Optional Test Cases.
#### Test case 3: Running a non-problem query and viewing results
1. Open the [cpp FunLinesOfCode query](https://github.com/github/codeql/blob/main/cpp/ql/src/Metrics/Functions/FunLinesOfCode.ql).
1. Open the [cpp HubClasses query](https://github.com/github/codeql/blob/main/cpp/ql/src/Architecture/General%20Class-Level%20Information/HubClasses.ql).
2. Select the `google/brotli` database (or download it if you don't have one already)
3. Run a local query.
4. Once the query completes:
- Check that the `#select` result set is shown
- Check that the results table is rendered
- Check that result locations can be clicked on
#### Test case 4: Can use AST viewer
1. Click on any code location from a previous query to open a source file from a database
2. Open the AST viewing panel and click "View AST"
3. Once the AST is computed:
2. Select the highlighted code in the source file
3. Open the AST viewing panel and click "View AST"
4. Once the AST is computed:
- Check that it can be navigated
### MRVA
@@ -143,6 +145,48 @@ Run one of the above MRVAs, but cancel it from within VS Code:
- Check that the workflow run is also canceled.
- Check that any available results are visible in VS Code.
#### Test Case 6: Using model packs in MRVA
1. Create a model pack with mock data
1. Create a new directory `test-model-pack`
2. Create a `qlpack.yml` file in that directory with the following contents:
```yaml
name: github/test-model-pack
version: 0.0.0
library: true
extensionTargets:
codeql/python-all: '*'
dataExtensions:
- extension.yml
```
3. Create an `extension.yml` in the same directory with the following contents:
```yaml
extensions:
- addsTo:
pack: codeql/python-all
extensible: sinkModel
data:
- ["vscode-codeql","Member[initialize].Argument[0]","code-injection"]
```
2. In a Python query pack, create the following query (e.g. `sinks.ql`):
```ql
import python
import semmle.python.frameworks.data.internal.ApiGraphModelsExtensions
from string path, string kind
where sinkModel("vscode-codeql", path, kind, _)
select path, kind
```
3. Run a MRVA against a Python repository (e.g. `psf/requests`) with this query.
4. Check that the results view contains 1 result with the values corresponding to the `extension.yml` file:
![Model packs results table for `psf/requests`](images/model-pack-results-table.png)
### CodeQL Model Editor
#### Test Case 1: Opening the model editor
@@ -151,7 +195,7 @@ Run one of the above MRVAs, but cancel it from within VS Code:
2. Open the Model Editor with the "CodeQL: Open CodeQL Model Editor" command from the command palette.
- Check that the editor loads and shows methods to model.
- Check that methods are grouped per library (e.g. `rocksdbjni@7.7.3` or `asm@6.0`)
- Check that the "Open source" link works.
- Check that the "Open source" link works (if you have the database source).
- Check that the 'View' button works and the Method Usage panel highlight the correct method and usage
- Check that the Method Modeling panel shows the correct method and modeling state
@@ -166,17 +210,7 @@ Run one of the above MRVAs, but cancel it from within VS Code:
4. Open the ".model.yml" file corresponding to the library that was changed.
- Check that the file contains entries for the methods that were modeled.
#### Test Case 3: Model with AI
Note that this test requires the feature flag: `codeQL.model.llmGeneration`
A package that the AI normally gives models for is `javax.servlet-api` from the `jhy/jsoup` repository.
1. Click "Model with AI".
- Check that rows change to "Thinking".
- Check that results come back and rows get filled out.
#### Test Case 4: Model as dependency
#### Test Case 3: Model as dependency
Note that this test requires the feature flag: `codeQL.model.flowGeneration`

View File

@@ -1,16 +0,0 @@
{
"sourceType": "unambiguous",
"presets": [
[
"@babel/preset-env",
{
"targets": {
"chrome": 100
}
}
],
"@babel/preset-typescript",
"@babel/preset-react"
],
"plugins": []
}

View File

@@ -28,6 +28,7 @@ const baseConfig = {
"plugin:@typescript-eslint/recommended",
"plugin:import/recommended",
"plugin:import/typescript",
"plugin:deprecation/recommended",
],
rules: {
"@typescript-eslint/await-thenable": "error",
@@ -39,7 +40,7 @@ const baseConfig = {
ignoreRestSiblings: false,
},
],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-floating-promises": ["error", { ignoreVoid: true }],
"@typescript-eslint/no-invalid-this": "off",
"@typescript-eslint/no-shadow": "off",
@@ -120,15 +121,6 @@ module.exports = {
},
},
},
{
files: ["test/**/*"],
parserOptions: {
project: resolve(__dirname, "test/tsconfig.json"),
},
env: {
jest: true,
},
},
{
files: ["test/vscode-tests/**/*"],
parserOptions: {
@@ -155,6 +147,18 @@ module.exports = {
],
},
},
{
files: ["test/**/*"],
parserOptions: {
project: resolve(__dirname, "test/tsconfig.json"),
},
env: {
jest: true,
},
rules: {
"@typescript-eslint/no-explicit-any": "off",
},
},
{
files: [
".eslintrc.js",

View File

@@ -1 +1 @@
v18.15.0
v20.14.0

View File

@@ -1,7 +1,7 @@
import type { StorybookConfig } from "@storybook/react-webpack5";
import type { StorybookConfig } from "@storybook/react-vite";
const config: StorybookConfig = {
stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
@@ -10,7 +10,7 @@ const config: StorybookConfig = {
"./vscode-theme-addon/preset.ts",
],
framework: {
name: "@storybook/react-webpack5",
name: "@storybook/react-vite",
options: {},
},
docs: {

View File

@@ -5,10 +5,10 @@ import { useCallback } from "react";
import { useGlobals } from "@storybook/manager-api";
import {
IconButton,
Icons,
TooltipLinkList,
WithTooltip,
} from "@storybook/components";
import { DashboardIcon } from "@storybook/icons";
import { themeNames, VSCodeTheme } from "./theme";
@@ -53,7 +53,7 @@ export const ThemeSelector: FunctionComponent = () => {
title="Change the theme of the preview"
active={vscodeTheme !== VSCodeTheme.Dark}
>
<Icons icon="dashboard" />
<DashboardIcon />
</IconButton>
</WithTooltip>
);

View File

@@ -1,5 +1,6 @@
import * as React from "react";
import { addons, types } from "@storybook/manager-api";
import { addons } from "@storybook/manager-api";
import { Addon_TypesEnum } from "storybook/internal/types";
import { ThemeSelector } from "./ThemeSelector";
const ADDON_ID = "vscode-theme-addon";
@@ -7,7 +8,7 @@ const ADDON_ID = "vscode-theme-addon";
addons.register(ADDON_ID, () => {
addons.add(ADDON_ID, {
title: "VSCode Themes",
type: types.TOOL,
type: Addon_TypesEnum.TOOL,
match: ({ viewMode }) => !!(viewMode && viewMode.match(/^(story|docs)$/)),
render: () => <ThemeSelector />,
});

View File

@@ -1,3 +1,5 @@
/// <reference types="vite/client" />
import { useEffect } from "react";
import type {
PartialStoryFn as StoryFunction,
@@ -6,31 +8,20 @@ import type {
import { VSCodeTheme } from "./theme";
import darkThemeStyle from "../../src/stories/vscode-theme-dark.css?url";
import lightThemeStyle from "../../src/stories/vscode-theme-light.css?url";
import lightHighContrastThemeStyle from "../../src/stories/vscode-theme-light-high-contrast.css?url";
import darkHighContrastThemeStyle from "../../src/stories/vscode-theme-dark-high-contrast.css?url";
import githubLightDefaultThemeStyle from "../../src/stories/vscode-theme-github-light-default.css?url";
import githubDarkDefaultThemeStyle from "../../src/stories/vscode-theme-github-dark-default.css?url";
const themeFiles: { [key in VSCodeTheme]: string } = {
[VSCodeTheme.Dark]:
// eslint-disable-next-line @typescript-eslint/no-var-requires,import/no-commonjs,import/no-webpack-loader-syntax
require("!file-loader?modules!../../src/stories/vscode-theme-dark.css")
.default,
[VSCodeTheme.Light]:
// eslint-disable-next-line @typescript-eslint/no-var-requires,import/no-commonjs,import/no-webpack-loader-syntax
require("!file-loader?modules!../../src/stories/vscode-theme-light.css")
.default,
[VSCodeTheme.LightHighContrast]:
// eslint-disable-next-line @typescript-eslint/no-var-requires,import/no-commonjs,import/no-webpack-loader-syntax
require("!file-loader?modules!../../src/stories/vscode-theme-light-high-contrast.css")
.default,
[VSCodeTheme.DarkHighContrast]:
// eslint-disable-next-line @typescript-eslint/no-var-requires,import/no-commonjs,import/no-webpack-loader-syntax
require("!file-loader?modules!../../src/stories/vscode-theme-dark-high-contrast.css")
.default,
[VSCodeTheme.GitHubLightDefault]:
// eslint-disable-next-line @typescript-eslint/no-var-requires,import/no-commonjs,import/no-webpack-loader-syntax
require("!file-loader?modules!../../src/stories/vscode-theme-github-light-default.css")
.default,
[VSCodeTheme.GitHubDarkDefault]:
// eslint-disable-next-line @typescript-eslint/no-var-requires,import/no-commonjs,import/no-webpack-loader-syntax
require("!file-loader?modules!../../src/stories/vscode-theme-github-dark-default.css")
.default,
[VSCodeTheme.Dark]: darkThemeStyle,
[VSCodeTheme.Light]: lightThemeStyle,
[VSCodeTheme.LightHighContrast]: lightHighContrastThemeStyle,
[VSCodeTheme.DarkHighContrast]: darkHighContrastThemeStyle,
[VSCodeTheme.GitHubLightDefault]: githubLightDefaultThemeStyle,
[VSCodeTheme.GitHubDarkDefault]: githubDarkDefaultThemeStyle,
};
export const withTheme = (StoryFn: StoryFunction, context: StoryContext) => {

View File

@@ -1,5 +1,53 @@
# CodeQL for Visual Studio Code: Changelog
## 1.14.0 - 7 August 2024
- Add Python support to the CodeQL Model Editor. [#3676](https://github.com/github/vscode-codeql/pull/3676)
- Update variant analysis view to display the length of the shortest path for path queries. [#3671](https://github.com/github/vscode-codeql/pull/3671)
- Remove support for CodeQL CLI versions older than 2.15.5. [#3681](https://github.com/github/vscode-codeql/pull/3681)
## 1.13.1 - 29 May 2024
- Fix a bug when re-importing test databases that erroneously showed old source code. [#3616](https://github.com/github/vscode-codeql/pull/3616)
- Update the progress window with details on potentially long-running post-processing steps after running a query. [#3622](https://github.com/github/vscode-codeql/pull/3622)
## 1.13.0 - 1 May 2024
- Add Ruby support to the CodeQL Model Editor. [#3584](https://github.com/github/vscode-codeql/pull/3584)
- Remove support for CodeQL CLI versions older than 2.14.6. [#3562](https://github.com/github/vscode-codeql/pull/3562)
## 1.12.5 - 9 April 2024
- Add new supported source and sink kinds in the CodeQL Model Editor [#3511](https://github.com/github/vscode-codeql/pull/3511)
- Fix a bug where the test explorer wouldn't display certain tests. [#3527](https://github.com/github/vscode-codeql/pull/3527)
- The "model dependency" operation in the model editor can now be cancelled. [#3517](https://github.com/github/vscode-codeql/pull/3517)
## 1.12.4 - 20 March 2024
- Don't show notification after local query cancellation. [#3489](https://github.com/github/vscode-codeql/pull/3489)
- Databases created from [CodeQL test cases](https://docs.github.com/en/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/testing-custom-queries) are now copied into a shared VS Code storage location. This avoids a bug where re-running test cases would fail if the test's database is already imported into the workspace. [#3433](https://github.com/github/vscode-codeql/pull/3433)
## 1.12.3 - 29 February 2024
- Update variant analysis view to show when cancelation is in progress. [#3405](https://github.com/github/vscode-codeql/pull/3405)
- Remove support for CodeQL CLI versions older than 2.13.5. [#3371](https://github.com/github/vscode-codeql/pull/3371)
- Add a timeout to downloading databases and the CodeQL CLI. These can be changed using the `codeQL.addingDatabases.downloadTimeout` and `codeQL.cli.downloadTimeout` settings respectively. [#3373](https://github.com/github/vscode-codeql/pull/3373)
- When downloading a CodeQL database through the model editor, only use credentials when in canary mode. [#3440](https://github.com/github/vscode-codeql/pull/3440)
## 1.12.2 - 14 February 2024
- Stop allowing running variant analyses with a query outside of the workspace. [#3302](https://github.com/github/vscode-codeql/pull/3302)
## 1.12.1 - 31 January 2024
- Enable collection of telemetry for the `codeQL.addingDatabases.addDatabaseSourceToWorkspace` setting. [#3238](https://github.com/github/vscode-codeql/pull/3238)
- In the CodeQL model editor, you can now select individual method rows and save changes to only the selected rows, instead of having to save the entire library model. [#3156](https://github.com/github/vscode-codeql/pull/3156)
- If you run a query without having selected a database, we show a more intuitive prompt to help you select a database. [#3214](https://github.com/github/vscode-codeql/pull/3214)
- Error messages returned from the CodeQL CLI are now less verbose and more user-friendly. [#3259](https://github.com/github/vscode-codeql/pull/3259)
- The UI for browsing and running CodeQL tests has moved to use VS Code's built-in test UI. This makes the CodeQL test UI more consistent with the test UIs for other languages.
This change means that this extension no longer depends on the "Test Explorer UI" and "Test Adapter Converter" extensions. You can uninstall those two extensions if they are
not being used by any other extensions you may have installed. [#3232](https://github.com/github/vscode-codeql/pull/3232)
## 1.12.0 - 11 January 2024
- Add a prompt for downloading a GitHub database when opening a GitHub repository. [#3138](https://github.com/github/vscode-codeql/pull/3138)
@@ -460,7 +508,7 @@ No user facing changes.
- Allow setting `codeQL.runningQueries.numberOfThreads` and `codeQL.runningTests.numberOfThreads` to 0, (which is interpreted as 'use one thread per core on the machine').
- Clear the problems view of all CodeQL query results when a database is removed.
- Add a `View DIL` command on query history items. This opens a text editor containing the Datalog Intermediary Language representation of the compiled query.
- Remove feature flag for the AST Viewer. For more information on how to use the AST Viewer, [see the documentation](https://help.semmle.com/codeql/codeql-for-vscode/procedures/exploring-the-structure-of-your-source-code.html).
- Remove feature flag for the AST Viewer. For more information on how to use the AST Viewer, [see the documentation](https://codeql.github.com/docs/codeql-for-visual-studio-code/exploring-the-structure-of-your-source-code/).
- The `codeQL.runningTests.numberOfThreads` setting is now used correctly when running tests.
- Alter structure of the _Test Explorer_ tree. It now follows the structure of the filesystem instead of the qlpacks.
- Ensure output of CodeQL test runs includes compilation error messages and test failure messages.

View File

@@ -9,16 +9,16 @@ This project is an extension for Visual Studio Code that adds rich language supp
To see what has changed in the last few versions of the extension, see the [Changelog](https://github.com/github/vscode-codeql/blob/main/extensions/ql-vscode/CHANGELOG.md).
You can also read full documentation for the extension on the [GitHub documentation website](https://docs.github.com/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension).
## Quick start overview
The information in this `README` file describes the quickest way to start using CodeQL.
For information about other configurations, see the separate [CodeQL help](https://codeql.github.com/docs/codeql-for-visual-studio-code/).
For information about other configurations, see "[Using the advanced functionality of the CodeQL for VS Code extension](https://docs.github.com/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension)" in the GitHub documentation.
### Quick start: Installing and configuring the extension
1. [Install the extension](#installing-the-extension).
*Note: vscode-codeql installs the following dependencies for required functionality: [Test Adapter Converter](https://marketplace.visualstudio.com/items?itemName=ms-vscode.test-adapter-converter), [Test Explorer UI](https://marketplace.visualstudio.com/items?itemName=hbenl.vscode-test-explorer).*
1. [Check access to the CodeQL CLI](#checking-access-to-the-codeql-cli).
1. [Clone the CodeQL starter workspace](#cloning-the-codeql-starter-workspace).
@@ -44,7 +44,7 @@ The CodeQL extension requires a minimum of Visual Studio Code 1.39. Older versio
The extension uses the [CodeQL CLI](https://codeql.github.com/docs/codeql-cli/) to compile and run queries. The extension automatically manages access to the CLI for you by default (recommended). To check for updates to the CodeQL CLI, you can use the **CodeQL: Check for CLI Updates** command.
If you want to override the default behavior and use a CodeQL CLI that's already on your machine, see [Configuring access to the CodeQL CLI](https://codeql.github.com/docs/codeql-for-visual-studio-code/setting-up-codeql-in-visual-studio-code/#configuring-access-to-the-codeql-cli).
If you want to override the default behavior and use a CodeQL CLI that's already on your machine, see "[Configuring access to the CodeQL CLI](https://docs.github.com/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/configuring-access-to-the-codeql-cli)" in the GitHub documentation.
If you have any difficulty with CodeQL CLI access, see the **CodeQL Extension Log** in the **Output** view for any error messages.
@@ -54,7 +54,7 @@ When you're working with CodeQL, you need access to the standard CodeQL librarie
Initially, we recommend that you clone and use the ready-to-use [starter workspace](https://github.com/github/vscode-codeql-starter/).
This includes libraries and queries for the main supported languages, with folders set up ready for your custom queries. After cloning the workspace (use `git clone --recursive`), you can use it in the same way as any other VS Code workspace—with the added advantage that you can easily update the CodeQL libraries.
For information about configuring an existing workspace for CodeQL, [see the documentation](https://codeql.github.com/docs/codeql-for-visual-studio-code/setting-up-codeql-in-visual-studio-code/#updating-an-existing-workspace-for-codeql).
For information about configuring an existing workspace for CodeQL, see "[Setting up a CodeQL workspace](https://docs.github.com/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/setting-up-a-codeql-workspace#option-2-updating-an-existing-workspace-for-codeql-advanced)" in the GitHub documentation.
## Upgrading CodeQL standard libraries
@@ -87,7 +87,7 @@ While you can use the [CodeQL CLI to create your own databases](https://codeql.g
1. Select the language for the database you want to download (only required if the project has databases for multiple languages).
1. Once the CodeQL database has been imported, it is displayed in the Databases view.
For more information, see [Choosing a database](https://codeql.github.com/docs/codeql-for-visual-studio-code/analyzing-your-projects/#choosing-a-database) on codeql.github.com.
For more information, see "[Managing CodeQL databases](https://docs.github.com/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/managing-codeql-databases#choosing-a-database-to-analyze)" in the GitHub documentation.
### Running a query
@@ -108,12 +108,12 @@ If you wish to navigate the query results from your keyboard, you can bind short
## What next?
For more information about the CodeQL extension, [see the documentation](https://codeql.github.com/docs/codeql-for-visual-studio-code/). Otherwise, you could:
We recommend reading the [full documentation for the extension](https://docs.github.com/code-security/codeql-for-vs-code/) on the GitHub documentation website. You may also find the following resources useful:
- [Create a database for a different codebase](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/).
- [Try out variant analysis](https://help.semmle.com/QL/learn-ql/ql-training.html).
- [Try out variant analysis](https://docs.github.com/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries-at-scale-with-multi-repository-variant-analysis).
- [Learn more about CodeQL](https://codeql.github.com/docs/).
- [Read how security researchers use CodeQL to find CVEs](https://securitylab.github.com/research).
- [Read how security researchers use CodeQL to find CVEs](https://github.blog/tag/github-security-lab/).
## License
@@ -121,4 +121,4 @@ The CodeQL extension for Visual Studio Code is [licensed](LICENSE.md) under the
## Data and Telemetry
If you specifically opt-in to permit GitHub to do so, GitHub will collect usage data and metrics for the purposes of helping the core developers to improve the CodeQL extension for VS Code. This data will not be shared with any parties outside of GitHub. IP addresses and installation IDs will be retained for a maximum of 30 days. Anonymous data will be retained for a maximum of 180 days. For more information about telemetry, [see the documentation](https://codeql.github.com/docs/codeql-for-visual-studio-code/about-telemetry-in-codeql-for-visual-studio-code).
If you specifically opt-in to permit GitHub to do so, GitHub will collect usage data and metrics for the purposes of helping the core developers to improve the CodeQL extension for VS Code. This data will not be shared with any parties outside of GitHub. IP addresses and installation IDs will be retained for a maximum of 30 days. Anonymous data will be retained for a maximum of 180 days. For more information, see "[Telemetry in CodeQL for Visual Studio Code](https://docs.github.com/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/telemetry-in-codeql-for-visual-studio-code)" in the GitHub documentation.

View File

@@ -0,0 +1,91 @@
/**
* A subset of the standard TextMate grammar that is used by our transformation
* step. For a full JSON schema, see:
* https://github.com/martinring/tmlanguage/blob/478ad124a21933cd4b0b65f1ee7ee18ee1f87473/tmlanguage.json
*/
export interface TextmateGrammar {
patterns: Pattern[];
repository?: Record<string, Pattern>;
}
/**
* The extended TextMate grammar as used by our transformation step. This is a superset of the
* standard TextMate grammar, and includes additional fields that are used by our transformation
* step.
*
* Any comment of the form `(?#ref-id)` in a `match`, `begin`, or `end` property will be replaced
* with the match text of the rule named "ref-id". If the rule named "ref-id" consists of just a
* `patterns` property with a list of `include` directives, the replacement pattern is the
* disjunction of the match patterns of all of the included rules.
*/
export interface ExtendedTextmateGrammar<MatchType = string> {
/**
* This represents the set of regular expression options to apply to all regular
* expressions throughout the file.
*/
regexOptions?: string;
/**
* This element defines a map of macro names to replacement text. When a `match`, `begin`, or
* `end` property has a value that is a single-key map, the value is replaced with the value of the
* macro named by the key, with any use of `(?#)` in the macro text replaced with the text of the
* value of the key, surrounded by a non-capturing group (`(?:)`). For example:
*
* The `beginPattern` and `endPattern` Properties
* A rule can have a `beginPattern` or `endPattern` property whose value is a reference to another
* rule (e.g. `#other-rule`). The `beginPattern` property is replaced as follows:
*
* my-rule:
* beginPattern: '#other-rule'
*
* would be transformed to
*
* my-rule:
* begin: '(?#other-rule)'
* beginCaptures:
* '0':
* patterns:
* - include: '#other-rule'
*
* An `endPattern` property is transformed similary.
*
* macros:
* repeat: '(?#)*'
* repository:
* multi-letter:
* match:
* repeat: '[A-Za-z]'
* name: scope.multi-letter
*
* would be transformed to
*
* repository:
* multi-letter:
* match: '(?:[A-Za-z])*'
* name: scope.multi-letter
*/
macros?: Record<string, string>;
patterns: Array<Pattern<MatchType>>;
repository?: Record<string, Pattern<MatchType>>;
}
export interface Pattern<MatchType = string> {
include?: string;
match?: MatchType;
begin?: MatchType;
end?: MatchType;
while?: MatchType;
captures?: Record<string, PatternCapture>;
beginCaptures?: Record<string, PatternCapture>;
endCaptures?: Record<string, PatternCapture>;
patterns?: Array<Pattern<MatchType>>;
beginPattern?: string;
endPattern?: string;
}
export interface PatternCapture {
name?: string;
patterns?: Pattern[];
}
export type ExtendedMatchType = string | Record<string, string>;

View File

@@ -3,6 +3,12 @@ import { load } from "js-yaml";
import { obj } from "through2";
import PluginError from "plugin-error";
import type Vinyl from "vinyl";
import type {
ExtendedMatchType,
ExtendedTextmateGrammar,
Pattern,
TextmateGrammar,
} from "./textmate-grammar";
/**
* Replaces all rule references with the match pattern of the referenced rule.
@@ -34,7 +40,9 @@ function replaceReferencesWithStrings(
* @param yaml The root of the YAML document.
* @returns A map from macro name to replacement text.
*/
function gatherMacros(yaml: any): Map<string, string> {
function gatherMacros<T>(
yaml: ExtendedTextmateGrammar<T>,
): Map<string, string> {
const macros = new Map<string, string>();
for (const key in yaml.macros) {
macros.set(key, yaml.macros[key]);
@@ -51,7 +59,7 @@ function gatherMacros(yaml: any): Map<string, string> {
* @returns The match text for the rule. This is either the value of the rule's `match` property,
* or the disjunction of the match text of all of the other rules `include`d by this rule.
*/
function getNodeMatchText(rule: any): string {
function getNodeMatchText(rule: Pattern): string {
if (rule.match !== undefined) {
// For a match string, just use that string as the replacement.
return rule.match;
@@ -78,7 +86,7 @@ function getNodeMatchText(rule: any): string {
* @returns A map whose keys are the names of rules, and whose values are the corresponding match
* text of each rule.
*/
function gatherMatchTextForRules(yaml: any): Map<string, string> {
function gatherMatchTextForRules(yaml: TextmateGrammar): Map<string, string> {
const replacements = new Map<string, string>();
for (const key in yaml.repository) {
const node = yaml.repository[key];
@@ -94,9 +102,14 @@ function gatherMatchTextForRules(yaml: any): Map<string, string> {
* @param yaml The root of the YAML document.
* @param action Callback to invoke on each rule.
*/
function visitAllRulesInFile(yaml: any, action: (rule: any) => void) {
function visitAllRulesInFile<T>(
yaml: ExtendedTextmateGrammar<T>,
action: (rule: Pattern<T>) => void,
) {
visitAllRulesInRuleMap(yaml.patterns, action);
visitAllRulesInRuleMap(yaml.repository, action);
if (yaml.repository) {
visitAllRulesInRuleMap(Object.values(yaml.repository), action);
}
}
/**
@@ -107,9 +120,11 @@ function visitAllRulesInFile(yaml: any, action: (rule: any) => void) {
* @param ruleMap The map or array of rules to visit.
* @param action Callback to invoke on each rule.
*/
function visitAllRulesInRuleMap(ruleMap: any, action: (rule: any) => void) {
for (const key in ruleMap) {
const rule = ruleMap[key];
function visitAllRulesInRuleMap<T>(
ruleMap: Array<Pattern<T>>,
action: (rule: Pattern<T>) => void,
) {
for (const rule of ruleMap) {
if (typeof rule === "object") {
action(rule);
if (rule.patterns !== undefined) {
@@ -125,16 +140,22 @@ function visitAllRulesInRuleMap(ruleMap: any, action: (rule: any) => void) {
* @param rule The rule whose matches are to be transformed.
* @param action The transformation to make on each match pattern.
*/
function visitAllMatchesInRule(rule: any, action: (match: any) => any) {
function visitAllMatchesInRule<T>(rule: Pattern<T>, action: (match: T) => T) {
for (const key in rule) {
switch (key) {
case "begin":
case "end":
case "match":
case "while":
rule[key] = action(rule[key]);
break;
case "while": {
const ruleElement = rule[key];
if (!ruleElement) {
continue;
}
rule[key] = action(ruleElement);
break;
}
default:
break;
}
@@ -148,14 +169,17 @@ function visitAllMatchesInRule(rule: any, action: (match: any) => any) {
* @param rule Rule to be transformed.
* @param key Base key of the property to be transformed.
*/
function expandPatternMatchProperties(rule: any, key: "begin" | "end") {
const patternKey = `${key}Pattern`;
const capturesKey = `${key}Captures`;
function expandPatternMatchProperties<T>(
rule: Pattern<T>,
key: "begin" | "end",
) {
const patternKey = `${key}Pattern` as const;
const capturesKey = `${key}Captures` as const;
const pattern = rule[patternKey];
if (pattern !== undefined) {
const patterns: string[] = Array.isArray(pattern) ? pattern : [pattern];
rule[key] = patterns.map((p) => `((?${p}))`).join("|");
const captures: { [index: string]: any } = {};
rule[key] = patterns.map((p) => `((?${p}))`).join("|") as T;
const captures: Pattern["captures"] = {};
for (const patternIndex in patterns) {
captures[(Number(patternIndex) + 1).toString()] = {
patterns: [
@@ -175,7 +199,7 @@ function expandPatternMatchProperties(rule: any, key: "begin" | "end") {
*
* @param yaml The root of the YAML document.
*/
function transformFile(yaml: any) {
function transformFile(yaml: ExtendedTextmateGrammar<ExtendedMatchType>) {
const macros = gatherMacros(yaml);
visitAllRulesInFile(yaml, (rule) => {
expandPatternMatchProperties(rule, "begin");
@@ -198,24 +222,29 @@ function transformFile(yaml: any) {
yaml.macros = undefined;
const replacements = gatherMatchTextForRules(yaml);
// We have removed all object match properties, so we don't have an extended match type anymore.
const macrolessYaml = yaml as ExtendedTextmateGrammar;
const replacements = gatherMatchTextForRules(macrolessYaml);
// Expand references in matches.
visitAllRulesInFile(yaml, (rule) => {
visitAllRulesInFile(macrolessYaml, (rule) => {
visitAllMatchesInRule(rule, (match) => {
return replaceReferencesWithStrings(match, replacements);
});
});
if (yaml.regexOptions !== undefined) {
const regexOptions = `(?${yaml.regexOptions})`;
visitAllRulesInFile(yaml, (rule) => {
if (macrolessYaml.regexOptions !== undefined) {
const regexOptions = `(?${macrolessYaml.regexOptions})`;
visitAllRulesInFile(macrolessYaml, (rule) => {
visitAllMatchesInRule(rule, (match) => {
return regexOptions + match;
});
});
yaml.regexOptions = undefined;
macrolessYaml.regexOptions = undefined;
}
return macrolessYaml;
}
export function transpileTextMateGrammar() {
@@ -230,8 +259,8 @@ export function transpileTextMateGrammar() {
} else if (file.isBuffer()) {
const buf: Buffer = file.contents;
const yamlText: string = buf.toString("utf8");
const jsonData: any = load(yamlText);
transformFile(jsonData);
const yamlData = load(yamlText) as TextmateGrammar;
const jsonData = transformFile(yamlData);
file.contents = Buffer.from(JSON.stringify(jsonData, null, 2), "utf8");
file.extname = ".json";

View File

@@ -77,5 +77,8 @@ export function copyWasmFiles() {
// to configure the path to the WASM file. So, source-map will always load the file from `__dirname/mappings.wasm`.
// In version 0.8.0, it may be possible to do this properly by calling SourceMapConsumer.initialize by
// using the "browser" field in source-map's package.json to load the WASM file from a given file path.
return src("node_modules/source-map/lib/mappings.wasm").pipe(dest("out"));
return src("node_modules/source-map/lib/mappings.wasm", {
// WASM is a binary format, so don't try to re-encode it as text.
encoding: false,
}).pipe(dest("out"));
}

View File

@@ -28,7 +28,7 @@ export function compileViewEsbuild() {
}
export function watchViewEsbuild() {
watch(["src/view/**/*.{ts,tsx}"], compileViewEsbuild);
watch(["src/**/*.{ts,tsx}"], compileViewEsbuild);
}
export function checkViewTypeScript() {
@@ -38,5 +38,5 @@ export function checkViewTypeScript() {
}
export function watchViewCheckTypeScript() {
watch(["src/view/**/*.{ts,tsx}"], checkViewTypeScript);
watch(["src/**/*.{ts,tsx}"], checkViewTypeScript);
}

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
"description": "CodeQL for Visual Studio Code",
"author": "GitHub",
"private": true,
"version": "1.12.0",
"version": "1.14.0",
"publisher": "GitHub",
"license": "MIT",
"icon": "media/VS-marketplace-CodeQL-icon.png",
@@ -14,14 +14,13 @@
},
"engines": {
"vscode": "^1.82.0",
"node": "^18.15.0",
"node": "^20.14.0",
"npm": ">=7.20.6"
},
"categories": [
"Programming Languages"
],
"extensionDependencies": [
"hbenl.vscode-test-explorer",
"vscode.git"
],
"capabilities": {
@@ -54,10 +53,10 @@
"configurationDefaults": {
"[ql]": {
"debug.saveBeforeStart": "nonUntitledEditorsInActiveGroup",
"editor.wordBasedSuggestions": false
"editor.wordBasedSuggestions": "off"
},
"[dbscheme]": {
"editor.wordBasedSuggestions": false
"editor.wordBasedSuggestions": "off"
}
},
"debuggers": [
@@ -179,6 +178,11 @@
"type": "string",
"default": "",
"markdownDescription": "Path to the CodeQL executable that should be used by the CodeQL extension. The executable is named `codeql` on Linux/Mac and `codeql.exe` on Windows. If empty, the extension will look for a CodeQL executable on your shell PATH, or if CodeQL is not on your PATH, download and manage its own CodeQL executable (note: if you later introduce CodeQL on your PATH, the extension will prefer a CodeQL executable it has downloaded itself)."
},
"codeQL.cli.downloadTimeout": {
"type": "integer",
"default": 10,
"description": "Download timeout in seconds for downloading the CLI distribution."
}
}
},
@@ -377,6 +381,11 @@
"title": "Adding databases",
"order": 6,
"properties": {
"codeQL.addingDatabases.downloadTimeout": {
"type": "integer",
"default": 10,
"description": "Download timeout in seconds for adding a CodeQL database."
},
"codeQL.addingDatabases.allowHttp": {
"type": "boolean",
"default": false,
@@ -454,8 +463,25 @@
},
{
"type": "object",
"title": "Log insights",
"title": "Model Editor",
"order": 9,
"properties": {
"codeQL.model.packLocation": {
"type": "string",
"default": ".github/codeql/extensions/${name}-${language}",
"markdownDescription": "Location for newly created CodeQL model packs. The location can be either absolute or relative. If relative, it is relative to the workspace root.\n\nThe following variables are supported:\n* **${database}** - the name of the database\n* **${language}** - the name of the language\n* **${name}** - the name of the GitHub repository, or the name of the database if the database was not downloaded from GitHub\n* **${owner}** - the owner of the GitHub repository, or an empty string if the database was not downloaded from GitHub"
},
"codeQL.model.packName": {
"type": "string",
"default": "${owner}/${name}-${language}",
"markdownDescription": "Name of newly created CodeQL model packs. If the result is not a valid pack name, it will be converted to a valid pack name.\n\nThe following variables are supported:\n* **${database}** - the name of the database\n* **${language}** - the name of the language\n* **${name}** - the name of the GitHub repository, or the name of the database if the database was not downloaded from GitHub\n* **${owner}** - the owner of the GitHub repository, or an empty string if the database was not downloaded from GitHub"
}
}
},
{
"type": "object",
"title": "Log insights",
"order": 10,
"properties": {
"codeQL.logInsights.joinOrderWarningThreshold": {
"type": "number",
@@ -469,7 +495,7 @@
{
"type": "object",
"title": "Telemetry",
"order": 10,
"order": 11,
"properties": {
"codeQL.telemetry.enableTelemetry": {
"type": "boolean",
@@ -546,6 +572,14 @@
"command": "codeQL.runVariantAnalysisContextEditor",
"title": "CodeQL: Run Variant Analysis"
},
{
"command": "codeQL.runVariantAnalysisContextExplorer",
"title": "CodeQL: Run Variant Analysis"
},
{
"command": "codeQL.runVariantAnalysisPublishedPack",
"title": "CodeQL: Run Variant Analysis against published pack"
},
{
"command": "codeQL.exportSelectedVariantAnalysisResults",
"title": "CodeQL: Export Variant Analysis Results"
@@ -721,6 +755,10 @@
"command": "codeQL.setCurrentDatabase",
"title": "CodeQL: Set Current Database"
},
{
"command": "codeQL.importTestDatabase",
"title": "CodeQL: (Re-)Import Test Database"
},
{
"command": "codeQL.getCurrentDatabase",
"title": "CodeQL: Get Current Database"
@@ -1305,7 +1343,12 @@
{
"command": "codeQL.setCurrentDatabase",
"group": "9_qlCommands",
"when": "resourceScheme == codeql-zip-archive || explorerResourceIsFolder || resourceExtname == .zip"
"when": "resourceExtname != .testproj && (resourceScheme == codeql-zip-archive || explorerResourceIsFolder || resourceExtname == .zipz)"
},
{
"command": "codeQL.importTestDatabase",
"group": "9_qlCommands",
"when": "explorerResourceIsFolder && resourceExtname == .testproj"
},
{
"command": "codeQL.viewAstContextExplorer",
@@ -1322,6 +1365,11 @@
"group": "9_qlCommands",
"when": "resourceScheme != codeql-zip-archive"
},
{
"command": "codeQL.runVariantAnalysisContextExplorer",
"group": "9_qlCommands",
"when": "resourceExtname == .ql && config.codeQL.canary && config.codeQL.variantAnalysis.multiQuery"
},
{
"command": "codeQL.openReferencedFileContextExplorer",
"group": "9_qlCommands",
@@ -1398,6 +1446,14 @@
"command": "codeQL.runVariantAnalysis",
"when": "editorLangId == ql && resourceExtname == .ql"
},
{
"command": "codeQL.runVariantAnalysisContextExplorer",
"when": "false"
},
{
"command": "codeQL.runVariantAnalysisPublishedPack",
"when": "config.codeQL.canary && config.codeQL.variantAnalysis.multiQuery"
},
{
"command": "codeQL.runVariantAnalysisContextEditor",
"when": "false"
@@ -1412,7 +1468,7 @@
},
{
"command": "codeQL.quickEvalCount",
"when": "editorLangId == ql && codeql.supportsQuickEvalCount"
"when": "editorLangId == ql"
},
{
"command": "codeQL.quickEvalContextEditor",
@@ -1446,6 +1502,10 @@
"command": "codeQL.setCurrentDatabase",
"when": "false"
},
{
"command": "codeQL.importTestDatabase",
"when": "false"
},
{
"command": "codeQL.getCurrentDatabase",
"when": "false"
@@ -1730,8 +1790,7 @@
"when": "false"
},
{
"command": "codeQL.trimCache",
"when": "codeql.supportsTrimCache"
"command": "codeQL.trimCache"
}
],
"editor/context": [
@@ -1895,77 +1954,79 @@
"format": "prettier --write **/*.{ts,tsx} && eslint . --ext .ts,.tsx --fix",
"lint": "eslint . --ext .js,.ts,.tsx --max-warnings=0",
"lint:markdown": "markdownlint-cli2 \"../../**/*.{md,mdx}\" \"!**/node_modules/**\" \"!**/.vscode-test/**\" \"!**/build/cli/v*/**\"",
"find-deadcode": "ts-node scripts/find-deadcode.ts",
"find-deadcode": "vite-node scripts/find-deadcode.ts",
"format-staged": "lint-staged",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"lint:scenarios": "ts-node scripts/lint-scenarios.ts",
"lint:scenarios": "vite-node scripts/lint-scenarios.ts",
"generate": "npm-run-all -p generate:*",
"generate:schemas": "ts-node scripts/generate-schemas.ts",
"generate:chromium-version": "ts-node scripts/generate-chromium-version.ts",
"generate:schemas": "vite-node scripts/generate-schemas.ts",
"generate:chromium-version": "vite-node scripts/generate-chromium-version.ts",
"check-types": "find . -type f -name \"tsconfig.json\" -not -path \"./node_modules/*\" | sed -r 's|/[^/]+$||' | sort | uniq | xargs -I {} sh -c \"echo Checking types in {} && cd {} && npx tsc --noEmit\"",
"postinstall": "patch-package",
"prepare": "cd ../.. && husky install"
},
"dependencies": {
"@floating-ui/react": "^0.26.12",
"@octokit/plugin-retry": "^6.0.1",
"@octokit/plugin-throttling": "^8.0.0",
"@octokit/rest": "^20.0.2",
"@vscode/codicons": "^0.0.35",
"@vscode/codicons": "^0.0.36",
"@vscode/debugadapter": "^1.59.0",
"@vscode/debugprotocol": "^1.59.0",
"@vscode/debugprotocol": "^1.65.0",
"@vscode/webview-ui-toolkit": "^1.0.1",
"ajv": "^8.11.0",
"child-process-promise": "^2.2.1",
"chokidar": "^3.5.3",
"d3": "^7.6.1",
"chokidar": "^3.6.0",
"d3": "^7.9.0",
"d3-graphviz": "^5.0.2",
"fs-extra": "^11.1.1",
"js-yaml": "^4.1.0",
"msw": "^2.0.11",
"nanoid": "^5.0.1",
"msw": "^2.2.13",
"nanoid": "^5.0.7",
"node-fetch": "^2.6.7",
"p-queue": "^8.0.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"semver": "^7.5.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"semver": "^7.6.2",
"source-map": "^0.7.4",
"source-map-support": "^0.5.21",
"stream-json": "^1.7.3",
"styled-components": "^6.0.2",
"styled-components": "^6.1.9",
"tmp": "^0.2.1",
"tmp-promise": "^3.0.2",
"tree-kill": "^1.2.2",
"vscode-extension-telemetry": "^0.1.6",
"vscode-jsonrpc": "^8.0.2",
"vscode-jsonrpc": "^8.2.1",
"vscode-languageclient": "^8.0.2",
"vscode-test-adapter-api": "^1.7.0",
"vscode-test-adapter-util": "^0.7.0",
"yauzl": "^2.10.0",
"zip-a-folder": "^3.1.3"
"zip-a-folder": "^3.1.6"
},
"devDependencies": {
"@babel/core": "^7.18.13",
"@babel/plugin-transform-modules-commonjs": "^7.18.6",
"@babel/preset-env": "^7.23.7",
"@babel/preset-react": "^7.18.6",
"@babel/core": "^7.24.6",
"@babel/plugin-transform-modules-commonjs": "^7.24.7",
"@babel/preset-env": "^7.24.4",
"@babel/preset-react": "^7.24.1",
"@babel/preset-typescript": "^7.21.4",
"@faker-js/faker": "^8.0.2",
"@github/markdownlint-github": "^0.6.0",
"@octokit/plugin-throttling": "^8.0.0",
"@storybook/addon-a11y": "^7.4.6",
"@storybook/addon-actions": "^7.1.0",
"@storybook/addon-essentials": "^7.1.0",
"@storybook/addon-interactions": "^7.1.0",
"@storybook/addon-links": "^7.1.0",
"@storybook/components": "^7.6.7",
"@storybook/csf": "^0.1.1",
"@storybook/manager-api": "^7.6.6",
"@storybook/react": "^7.1.0",
"@storybook/react-webpack5": "^7.6.7",
"@storybook/theming": "^7.6.7",
"@testing-library/dom": "^9.3.0",
"@testing-library/jest-dom": "^6.2.0",
"@testing-library/react": "^14.0.0",
"@faker-js/faker": "^8.4.1",
"@github/markdownlint-github": "^0.6.2",
"@playwright/test": "^1.40.1",
"@storybook/addon-a11y": "^8.2.7",
"@storybook/addon-actions": "^8.2.7",
"@storybook/addon-essentials": "^8.2.7",
"@storybook/addon-interactions": "^8.2.7",
"@storybook/addon-links": "^8.2.7",
"@storybook/blocks": "^8.0.2",
"@storybook/components": "^8.2.7",
"@storybook/csf": "^0.1.11",
"@storybook/icons": "^1.2.10",
"@storybook/manager-api": "^8.2.7",
"@storybook/react": "^8.2.7",
"@storybook/react-vite": "^8.2.7",
"@storybook/theming": "^8.2.4",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.4.8",
"@testing-library/react": "^16.0.0",
"@testing-library/user-event": "^14.5.2",
"@types/child-process-promise": "^2.2.1",
"@types/d3": "^7.4.0",
@@ -1974,70 +2035,68 @@
"@types/fs-extra": "^11.0.1",
"@types/gulp": "^4.0.9",
"@types/gulp-replace": "^1.1.0",
"@types/jest": "^29.0.2",
"@types/jest": "^29.5.12",
"@types/js-yaml": "^4.0.6",
"@types/nanoid": "^3.0.0",
"@types/node": "18.15.*",
"@types/node": "20.14.*",
"@types/node-fetch": "^2.5.2",
"@types/react": "^18.0.28",
"@types/react-dom": "^18.0.11",
"@types/react": "^18.3.1",
"@types/react-dom": "^18.3.0",
"@types/sarif": "^2.1.2",
"@types/semver": "^7.2.0",
"@types/semver": "^7.5.8",
"@types/stream-json": "^1.7.1",
"@types/styled-components": "^5.1.11",
"@types/tar-stream": "^3.1.3",
"@types/through2": "^2.0.36",
"@types/tmp": "^0.2.6",
"@types/unzipper": "^0.10.1",
"@types/vscode": "^1.82.0",
"@types/yauzl": "^2.10.3",
"@typescript-eslint/eslint-plugin": "^6.18.0",
"@typescript-eslint/parser": "^6.16.0",
"@vscode/test-electron": "^2.2.0",
"@vscode/vsce": "^2.19.0",
"@typescript-eslint/eslint-plugin": "^7.5.0",
"@typescript-eslint/parser": "^7.5.0",
"@vscode/test-electron": "^2.3.9",
"@vscode/vsce": "^2.24.0",
"ansi-colors": "^4.1.1",
"applicationinsights": "^2.3.5",
"applicationinsights": "^2.9.5",
"cosmiconfig": "^9.0.0",
"cross-env": "^7.0.3",
"css-loader": "^6.8.1",
"del": "^6.0.0",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.0.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-deprecation": "^2.0.0",
"eslint-plugin-etc": "^2.0.2",
"eslint-plugin-github": "^4.4.1",
"eslint-plugin-github": "^4.10.2",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jest-dom": "^5.0.1",
"eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-react": "^7.31.8",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-storybook": "^0.6.4",
"file-loader": "^6.2.0",
"eslint-plugin-jest-dom": "^5.2.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6.2",
"eslint-plugin-storybook": "^0.8.0",
"glob": "^10.0.0",
"gulp": "^4.0.2",
"gulp": "^5.0.0",
"gulp-esbuild": "^0.12.0",
"gulp-replace": "^1.1.3",
"gulp-typescript": "^5.0.1",
"husky": "^8.0.0",
"husky": "^9.0.11",
"jest": "^29.0.3",
"jest-environment-jsdom": "^29.0.3",
"jest-runner-vscode": "^3.0.1",
"lint-staged": "^15.0.2",
"markdownlint-cli2": "^0.11.0",
"markdownlint-cli2-formatter-pretty": "^0.0.5",
"mini-css-extract-plugin": "^2.6.1",
"lint-staged": "^15.2.2",
"markdownlint-cli2": "^0.13.0",
"markdownlint-cli2-formatter-pretty": "^0.0.6",
"npm-run-all": "^4.1.5",
"patch-package": "^8.0.0",
"prettier": "^3.0.0",
"storybook": "^7.6.7",
"tar-stream": "^3.0.0",
"prettier": "^3.2.5",
"storybook": "^8.2.7",
"tar-stream": "^3.1.7",
"through2": "^4.0.2",
"ts-jest": "^29.0.1",
"ts-json-schema-generator": "^1.1.2",
"ts-loader": "^9.4.2",
"ts-node": "^10.7.0",
"ts-unused-exports": "^10.0.0",
"typescript": "^5.0.2"
"ts-jest": "^29.1.4",
"ts-json-schema-generator": "^2.1.1",
"ts-node": "^10.9.2",
"ts-unused-exports": "^10.1.0",
"typescript": "^5.0.2",
"vite": "^5.2.11",
"vite-node": "^1.5.3"
},
"lint-staged": {
"./**/*.{json,css,scss}": [

View File

@@ -15,6 +15,7 @@ import { pathExists, readJson, writeJson } from "fs-extra";
import { resolve, relative } from "path";
import type { Octokit } from "@octokit/core";
import type { EndpointDefaults } from "@octokit/types";
import type { RestEndpointMethodTypes } from "@octokit/rest";
import { throttling } from "@octokit/plugin-throttling";
@@ -42,7 +43,7 @@ const octokit = new MyOctokit({
throttle: {
onRateLimit: (
retryAfter: number,
options: any,
options: EndpointDefaults,
octokit: Octokit,
): boolean => {
octokit.log.warn(
@@ -53,7 +54,7 @@ const octokit = new MyOctokit({
},
onSecondaryRateLimit: (
_retryAfter: number,
options: any,
options: EndpointDefaults,
octokit: Octokit,
): void => {
octokit.log.warn(

View File

@@ -9,12 +9,13 @@ function ignoreFile(file: string): boolean {
containsPath(".storybook", file) ||
containsPath(join("src", "stories"), file) ||
pathsEqual(
join("test", "vscode-tests", "jest-runner-installed-extensions.ts"),
join("test", "vscode-tests", "jest-runner-vscode-codeql-cli.ts"),
file,
) ||
basename(file) === "jest.config.ts" ||
basename(file) === "index.tsx" ||
basename(file) === "index.ts"
basename(file) === "index.ts" ||
basename(file) === "playwright.config.ts"
);
}

View File

@@ -243,7 +243,7 @@ type WorkflowRunListItem = {
async function replaceAsync(
str: string,
regex: RegExp,
replacer: (substring: string, ...args: any[]) => Promise<string>,
replacer: (substring: string, ...args: string[]) => Promise<string>,
) {
const promises: Array<Promise<string>> = [];
str.replace(regex, (match, ...args) => {

View File

@@ -45,8 +45,9 @@ export async function getVersionInformation(
vscodeVersion: string,
): Promise<VersionInformation> {
const vsCodePackageJson = await getVsCodePackageJson(vscodeVersion);
const electronVersion = minVersion(vsCodePackageJson.devDependencies.electron)
?.version;
const electronVersion = minVersion(
vsCodePackageJson.devDependencies.electron,
)?.version;
if (!electronVersion) {
throw new Error("Could not find Electron version");
}

View File

@@ -1,15 +0,0 @@
/**
* The d3 library is designed to work in both the browser and
* node. Consequently their typings files refer to both node
* types like `Buffer` (which don't exist in the browser), and browser
* types like `Blob` (which don't exist in node). Instead of sticking
* all of `dom` in `compilerOptions.lib`, it suffices just to put in a
* stub definition of the affected types so that compilation
* succeeds.
*/
declare type RequestInit = Record<string, unknown>;
declare type ElementTagNameMap = any;
declare type NodeListOf<T> = Record<string, T>;
declare type Node = Record<string, unknown>;
declare type XMLDocument = Record<string, unknown>;

View File

@@ -3,7 +3,10 @@ import { promisify } from "util";
import type { BaseLogger } from "../common/logging";
import type { ProgressReporter } from "../common/logging/vscode";
import { getChildProcessErrorMessage } from "../common/helpers-pure";
import {
getChildProcessErrorMessage,
getErrorMessage,
} from "../common/helpers-pure";
/**
* Flags to pass to all cli commands.
@@ -11,26 +14,27 @@ import { getChildProcessErrorMessage } from "../common/helpers-pure";
export const LOGGING_FLAGS = ["-v", "--log-to-stderr"];
/**
* Runs a CodeQL CLI command without invoking the CLI server, returning the output as a string.
* Runs a CodeQL CLI command without invoking the CLI server, deserializing the output as JSON.
* @param codeQlPath The path to the CLI.
* @param command The `codeql` command to be run, provided as an array of command/subcommand names.
* @param commandArgs The arguments to pass to the `codeql` command.
* @param description Description of the action being run, to be shown in log and error messages.
* @param logger Logger to write command log messages, e.g. to an output channel.
* @param progressReporter Used to output progress messages, e.g. to the status bar.
* @returns The contents of the command's stdout, if the command succeeded.
* @returns A JSON object parsed from the contents of the command's stdout, if the command succeeded.
*/
export async function runCodeQlCliCommand(
export async function runJsonCodeQlCliCommand<OutputType>(
codeQlPath: string,
command: string[],
commandArgs: string[],
description: string,
logger: BaseLogger,
progressReporter?: ProgressReporter,
): Promise<string> {
): Promise<OutputType> {
// Add logging arguments first, in case commandArgs contains positional parameters.
const args = command.concat(LOGGING_FLAGS).concat(commandArgs);
const argsString = args.join(" ");
let stdout: string;
try {
if (progressReporter !== undefined) {
progressReporter.report({ message: description });
@@ -41,10 +45,18 @@ export async function runCodeQlCliCommand(
const result = await promisify(execFile)(codeQlPath, args);
void logger.log(result.stderr);
void logger.log("CLI command succeeded.");
return result.stdout;
stdout = result.stdout;
} catch (err) {
throw new Error(
`${description} failed: ${getChildProcessErrorMessage(err)}`,
);
}
try {
return JSON.parse(stdout) as OutputType;
} catch (err) {
throw new Error(
`Parsing output of ${description} failed: ${getErrorMessage(err)}`,
);
}
}

View File

@@ -0,0 +1,102 @@
import { asError, getErrorMessage } from "../common/helpers-pure";
// https://docs.github.com/en/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/exit-codes
const EXIT_CODE_USER_ERROR = 2;
const EXIT_CODE_CANCELLED = 98;
export class ExitCodeError extends Error {
constructor(public readonly exitCode: number | null) {
super(`Process exited with code ${exitCode}`);
}
}
export class CliError extends Error {
constructor(
message: string,
public readonly stderr: string | undefined,
public readonly cause: Error,
public readonly commandDescription: string,
public readonly commandArgs: string[],
) {
super(message);
}
}
export function getCliError(
e: unknown,
stderr: string | undefined,
commandDescription: string,
commandArgs: string[],
): CliError {
const error = asError(e);
if (!(error instanceof ExitCodeError) || !stderr) {
return formatCliErrorFallback(
error,
stderr,
commandDescription,
commandArgs,
);
}
switch (error.exitCode) {
case EXIT_CODE_USER_ERROR: {
// This is an error that we should try to format nicely
const fatalErrorIndex = stderr.lastIndexOf("A fatal error occurred: ");
if (fatalErrorIndex !== -1) {
return new CliError(
stderr.slice(fatalErrorIndex),
stderr,
error,
commandDescription,
commandArgs,
);
}
break;
}
case EXIT_CODE_CANCELLED: {
const cancellationIndex = stderr.lastIndexOf(
"Computation was cancelled: ",
);
if (cancellationIndex !== -1) {
return new CliError(
stderr.slice(cancellationIndex),
stderr,
error,
commandDescription,
commandArgs,
);
}
break;
}
}
return formatCliErrorFallback(error, stderr, commandDescription, commandArgs);
}
function formatCliErrorFallback(
error: Error,
stderr: string | undefined,
commandDescription: string,
commandArgs: string[],
): CliError {
if (stderr) {
return new CliError(
stderr,
undefined,
error,
commandDescription,
commandArgs,
);
}
return new CliError(
getErrorMessage(error),
undefined,
error,
commandDescription,
commandArgs,
);
}

View File

@@ -1,25 +1,50 @@
import type { SemVer } from "semver";
import { parse } from "semver";
import { runCodeQlCliCommand } from "./cli-command";
import { runJsonCodeQlCliCommand } from "./cli-command";
import type { Logger } from "../common/logging";
import { getErrorMessage } from "../common/helpers-pure";
interface VersionResult {
version: string;
features: CliFeatures | undefined;
}
export interface CliFeatures {
featuresInVersionResult?: boolean;
mrvaPackCreate?: boolean;
generateSummarySymbolMap?: boolean;
}
export interface VersionAndFeatures {
version: SemVer;
features: CliFeatures;
}
/**
* Get the version of a CodeQL CLI.
*/
export async function getCodeQlCliVersion(
codeQlPath: string,
logger: Logger,
): Promise<SemVer | undefined> {
): Promise<VersionAndFeatures | undefined> {
try {
const output: string = await runCodeQlCliCommand(
const output: VersionResult = await runJsonCodeQlCliCommand<VersionResult>(
codeQlPath,
["version"],
["--format=terse"],
["--format=json"],
"Checking CodeQL version",
logger,
);
return parse(output.trim()) || undefined;
const version = parse(output.version.trim()) || undefined;
if (version === undefined) {
return undefined;
}
return {
version,
features: output.features ?? {},
};
} catch (e) {
// Failed to run the version command. This might happen if the cli version is _really_ old, or it is corrupted.
// Either way, we can't determine compatibility.

View File

@@ -34,6 +34,9 @@ import { QueryLanguage } from "../common/query-language";
import { LINE_ENDINGS, splitStreamAtSeparators } from "../common/split-stream";
import type { Position } from "../query-server/messages";
import { LOGGING_FLAGS } from "./cli-command";
import type { CliFeatures, VersionAndFeatures } from "./cli-version";
import { ExitCodeError, getCliError } from "./cli-errors";
import { UserCancellationException } from "../common/vscode/progress";
/**
* The version of the SARIF format that we are using.
@@ -121,6 +124,16 @@ type GenerateExtensiblePredicateMetadataResult = {
}>;
};
type PackDownloadResult = {
// There are other properties in this object, but they are
// not relevant for its use in the extension, so we omit them.
packs: Array<{
name: string;
version: string;
}>;
packDir: string;
};
/**
* The expected output of `codeql resolve qlref`.
*/
@@ -144,9 +157,17 @@ type ResolvedQueries = string[];
type ResolvedTests = string[];
/**
* A compilation message for a test message (either an error or a warning)
* The severity of a compilation message for a test message.
*/
interface CompilationMessage {
export enum CompilationMessageSeverity {
Error = "ERROR",
Warning = "WARNING",
}
/**
* A compilation message for a test message (either an error or a warning).
*/
export interface CompilationMessage {
/**
* The text of the message
*/
@@ -158,7 +179,7 @@ interface CompilationMessage {
/**
* The severity of the message
*/
severity: number;
severity: CompilationMessageSeverity;
}
/**
@@ -193,7 +214,40 @@ type OnLineCallback = (
line: string,
) => Promise<string | undefined> | string | undefined;
type VersionChangedListener = (newVersion: SemVer | undefined) => void;
type VersionChangedListener = (
newVersionAndFeatures: VersionAndFeatures | undefined,
) => void;
type RunOptions = {
/**
* Used to output progress messages, e.g. to the status bar.
*/
progressReporter?: ProgressReporter;
/**
* Used for responding to interactive output on stdout/stdin.
*/
onLine?: OnLineCallback;
/**
* If true, don't print logs to the CodeQL extension log.
*/
silent?: boolean;
/**
* If true, run this command in a new process rather than in the CLI server.
*/
runInNewProcess?: boolean;
/**
* If runInNewProcess is true, allows cancelling the command. If runInNewProcess
* is false or not specified, this option is ignored.
*/
token?: CancellationToken;
};
type JsonRunOptions = RunOptions & {
/**
* Whether to add commandline arguments to specify the format as JSON.
*/
addFormat?: boolean;
};
/**
* This class manages a cli server started by `codeql execute cli-server` to
@@ -211,8 +265,8 @@ export class CodeQLCliServer implements Disposable {
/** A buffer with a single null byte. */
nullBuffer: Buffer;
/** Version of current cli, lazily computed by the `getVersion()` method */
private _version: SemVer | undefined;
/** Version of current cli and its supported features, lazily computed by the `getVersion()` method */
private _versionAndFeatures: VersionAndFeatures | undefined;
private _versionChangedListeners: VersionChangedListener[] = [];
@@ -288,7 +342,7 @@ export class CodeQLCliServer implements Disposable {
const callback = (): void => {
try {
this.killProcessIfRunning();
this._version = undefined;
this._versionAndFeatures = undefined;
this._supportedLanguages = undefined;
} finally {
this.runNext();
@@ -347,7 +401,6 @@ export class CodeQLCliServer implements Disposable {
onLine?: OnLineCallback,
silent?: boolean,
): Promise<string> {
const stderrBuffers: Buffer[] = [];
if (this.commandInProcess) {
throw new Error("runCodeQlCliInternal called while cli was running");
}
@@ -359,8 +412,6 @@ export class CodeQLCliServer implements Disposable {
}
// Grab the process so that typescript know that it is always defined.
const process = this.process;
// The array of fragments of stdout
const stdoutBuffers: Buffer[] = [];
// Compute the full args array
const args = command.concat(LOGGING_FLAGS).concat(commandArgs);
@@ -372,26 +423,160 @@ export class CodeQLCliServer implements Disposable {
);
}
try {
await new Promise<void>((resolve, reject) => {
// Start listening to stdout
process.stdout.addListener("data", (newData: Buffer) => {
if (onLine) {
void (async () => {
const response = await onLine(newData.toString("utf-8"));
return await this.handleProcessOutput(process, {
handleNullTerminator: true,
onListenStart: (process) => {
// Write the command followed by a null terminator.
process.stdin.write(JSON.stringify(args), "utf8");
process.stdin.write(this.nullBuffer);
},
description,
args,
silent,
onLine,
});
} catch (err) {
// Kill the process if it isn't already dead.
this.killProcessIfRunning();
if (!response) {
return;
}
throw err;
}
} finally {
this.commandInProcess = false;
// start running the next command immediately
this.runNext();
}
}
process.stdin.write(`${response}${EOL}`);
private async runCodeQlCliInNewProcess(
command: string[],
commandArgs: string[],
description: string,
onLine?: OnLineCallback,
silent?: boolean,
token?: CancellationToken,
): Promise<string> {
const codeqlPath = await this.getCodeQlPath();
// Remove newData from stdoutBuffers because the data has been consumed
// by the onLine callback.
stdoutBuffers.splice(stdoutBuffers.indexOf(newData), 1);
})();
}
const args = command.concat(LOGGING_FLAGS).concat(commandArgs);
const argsString = args.join(" ");
stdoutBuffers.push(newData);
// If we are running silently, we don't want to print anything to the console.
if (!silent) {
void this.logger.log(`${description} using CodeQL CLI: ${argsString}...`);
}
const abortController = new AbortController();
const process = spawnChildProcess(codeqlPath, args, {
signal: abortController.signal,
});
if (!process || !process.pid) {
throw new Error(
`Failed to start ${description} using command ${codeqlPath} ${argsString}.`,
);
}
// We need to ensure that we're not killing the same process twice (since this may kill
// another process with the same PID), so keep track of whether we've already exited.
let exited = false;
process.on("exit", () => {
exited = true;
});
const cancellationRegistration = token?.onCancellationRequested((_e) => {
abortController.abort("Token was cancelled.");
if (process.pid && !exited) {
tk(process.pid);
}
});
try {
return await this.handleProcessOutput(process, {
handleNullTerminator: false,
description,
args,
silent,
onLine,
});
} catch (e) {
// If cancellation was requested, the error is probably just because the process was exited with SIGTERM.
if (token?.isCancellationRequested) {
void this.logger.log(
`The process was cancelled and exited with: ${getErrorMessage(e)}`,
);
throw new UserCancellationException(
`Command ${argsString} was cancelled.`,
true, // Don't show a warning message when the user manually cancelled the command.
);
}
throw e;
} finally {
process.stdin.end();
if (!exited) {
tk(process.pid);
}
process.stdout.destroy();
process.stderr.destroy();
cancellationRegistration?.dispose();
}
}
private async handleProcessOutput(
process: ChildProcessWithoutNullStreams,
{
handleNullTerminator,
args,
description,
onLine,
onListenStart,
silent,
}: {
handleNullTerminator: boolean;
args: string[];
description: string;
onLine?: OnLineCallback;
onListenStart?: (process: ChildProcessWithoutNullStreams) => void;
silent?: boolean;
},
): Promise<string> {
const stderrBuffers: Buffer[] = [];
// The current buffer of stderr of a single line. To be used for logging.
let currentLineStderrBuffer: Buffer = Buffer.alloc(0);
// The listeners of the process. Declared here so they can be removed in the finally block.
let stdoutListener: ((newData: Buffer) => void) | undefined = undefined;
let stderrListener: ((newData: Buffer) => void) | undefined = undefined;
let closeListener: ((code: number | null) => void) | undefined = undefined;
let errorListener: ((err: Error) => void) | undefined = undefined;
try {
// The array of fragments of stdout
const stdoutBuffers: Buffer[] = [];
await new Promise<void>((resolve, reject) => {
stdoutListener = (newData: Buffer) => {
if (onLine) {
void (async () => {
const response = await onLine(newData.toString("utf-8"));
if (!response) {
return;
}
process.stdin.write(`${response}${EOL}`);
// Remove newData from stdoutBuffers because the data has been consumed
// by the onLine callback.
stdoutBuffers.splice(stdoutBuffers.indexOf(newData), 1);
})();
}
stdoutBuffers.push(newData);
if (handleNullTerminator) {
// If the buffer ends in '0' then exit.
// We don't have to check the middle as no output will be written after the null until
// the next command starts
@@ -401,54 +586,112 @@ export class CodeQLCliServer implements Disposable {
) {
resolve();
}
});
// Listen to stderr
process.stderr.addListener("data", (newData: Buffer) => {
stderrBuffers.push(newData);
});
// Listen for process exit.
process.addListener("close", (code) => reject(code));
// Write the command followed by a null terminator.
process.stdin.write(JSON.stringify(args), "utf8");
process.stdin.write(this.nullBuffer);
});
// Join all the data together
const fullBuffer = Buffer.concat(stdoutBuffers);
// Make sure we remove the terminator;
const data = fullBuffer.toString("utf8", 0, fullBuffer.length - 1);
if (!silent) {
void this.logger.log("CLI command succeeded.");
}
return data;
} catch (err) {
// Kill the process if it isn't already dead.
this.killProcessIfRunning();
// Report the error (if there is a stderr then use that otherwise just report the error code or nodejs error)
const newError =
stderrBuffers.length === 0
? new Error(
`${description} failed with args:${EOL} ${argsString}${EOL}${err}`,
)
: new Error(
`${description} failed with args:${EOL} ${argsString}${EOL}${Buffer.concat(
stderrBuffers,
).toString("utf8")}`,
}
};
stderrListener = (newData: Buffer) => {
stderrBuffers.push(newData);
if (!silent) {
currentLineStderrBuffer = Buffer.concat([
currentLineStderrBuffer,
newData,
]);
// Print the stderr to the logger as it comes in. We need to ensure that
// we don't split messages on the same line, so we buffer the stderr and
// split it on EOLs.
const eolBuffer = Buffer.from(EOL);
let hasCreatedSubarray = false;
let eolIndex;
while (
(eolIndex = currentLineStderrBuffer.indexOf(eolBuffer)) !== -1
) {
const line = currentLineStderrBuffer.subarray(0, eolIndex);
void this.logger.log(line.toString("utf-8"));
currentLineStderrBuffer = currentLineStderrBuffer.subarray(
eolIndex + eolBuffer.length,
);
newError.stack += getErrorStack(err);
throw newError;
} finally {
if (!silent) {
void this.logger.log(Buffer.concat(stderrBuffers).toString("utf8"));
}
// Remove the listeners we set up.
process.stdout.removeAllListeners("data");
process.stderr.removeAllListeners("data");
process.removeAllListeners("close");
hasCreatedSubarray = true;
}
// We have created a subarray, which means that the complete original buffer is now referenced
// by the subarray. We need to create a new buffer to avoid memory leaks.
if (hasCreatedSubarray) {
currentLineStderrBuffer = Buffer.from(currentLineStderrBuffer);
}
}
};
closeListener = (code) => {
if (handleNullTerminator) {
reject(new ExitCodeError(code));
} else {
if (code === 0) {
resolve();
} else {
reject(new ExitCodeError(code));
}
}
};
errorListener = (err) => {
reject(err);
};
// Start listening to stdout
process.stdout.addListener("data", stdoutListener);
// Listen to stderr
process.stderr.addListener("data", stderrListener);
// Listen for process exit.
process.addListener("close", closeListener);
// Listen for errors
process.addListener("error", errorListener);
onListenStart?.(process);
});
// Join all the data together
const fullBuffer = Buffer.concat(stdoutBuffers);
// Make sure we remove the terminator
const data = fullBuffer.toString(
"utf8",
0,
handleNullTerminator ? fullBuffer.length - 1 : fullBuffer.length,
);
if (!silent) {
void this.logger.log(currentLineStderrBuffer.toString("utf8"));
currentLineStderrBuffer = Buffer.alloc(0);
void this.logger.log("CLI command succeeded.");
}
return data;
} catch (err) {
// Report the error (if there is a stderr then use that otherwise just report the error code or nodejs error)
const cliError = getCliError(
err,
stderrBuffers.length > 0
? Buffer.concat(stderrBuffers).toString("utf8")
: undefined,
description,
args,
);
cliError.stack += getErrorStack(err);
throw cliError;
} finally {
this.commandInProcess = false;
// start running the next command immediately
this.runNext();
if (!silent && currentLineStderrBuffer.length > 0) {
void this.logger.log(currentLineStderrBuffer.toString("utf8"));
}
// Remove the listeners we set up.
if (stdoutListener) {
process.stdout.removeListener("data", stdoutListener);
}
if (stderrListener) {
process.stderr.removeListener("data", stderrListener);
}
if (closeListener) {
process.removeListener("close", closeListener);
}
if (errorListener) {
process.removeListener("error", errorListener);
}
}
}
@@ -565,6 +808,10 @@ export class CodeQLCliServer implements Disposable {
* @param description Description of the action being run, to be shown in log and error messages.
* @param progressReporter Used to output progress messages, e.g. to the status bar.
* @param onLine Used for responding to interactive output on stdout/stdin.
* @param silent If true, don't print logs to the CodeQL extension log.
* @param runInNewProcess If true, run this command in a new process rather than in the CLI server.
* @param token If runInNewProcess is true, allows cancelling the command. If runInNewProcess
* is false or not specified, this option is ignored.
* @returns The contents of the command's stdout, if the command succeeded.
*/
runCodeQlCliCommand(
@@ -575,16 +822,25 @@ export class CodeQLCliServer implements Disposable {
progressReporter,
onLine,
silent = false,
}: {
progressReporter?: ProgressReporter;
onLine?: OnLineCallback;
silent?: boolean;
} = {},
runInNewProcess = false,
token,
}: RunOptions = {},
): Promise<string> {
if (progressReporter) {
progressReporter.report({ message: description });
}
if (runInNewProcess) {
return this.runCodeQlCliInNewProcess(
command,
commandArgs,
description,
onLine,
silent,
token,
);
}
return new Promise((resolve, reject) => {
// Construct the command that actually does the work
const callback = (): void => {
@@ -617,24 +873,13 @@ export class CodeQLCliServer implements Disposable {
* @param description Description of the action being run, to be shown in log and error messages.
* @param addFormat Whether or not to add commandline arguments to specify the format as JSON.
* @param progressReporter Used to output progress messages, e.g. to the status bar.
* @param onLine Used for responding to interactive output on stdout/stdin.
* @returns The contents of the command's stdout, if the command succeeded.
*/
async runJsonCodeQlCliCommand<OutputType>(
command: string[],
commandArgs: string[],
description: string,
{
addFormat = true,
progressReporter,
onLine,
silent = false,
}: {
addFormat?: boolean;
progressReporter?: ProgressReporter;
onLine?: OnLineCallback;
silent?: boolean;
} = {},
{ addFormat = true, ...runOptions }: JsonRunOptions = {},
): Promise<OutputType> {
let args: string[] = [];
if (addFormat) {
@@ -642,11 +887,12 @@ export class CodeQLCliServer implements Disposable {
args = args.concat(["--format", "json"]);
}
args = args.concat(commandArgs);
const result = await this.runCodeQlCliCommand(command, args, description, {
progressReporter,
onLine,
silent,
});
const result = await this.runCodeQlCliCommand(
command,
args,
description,
runOptions,
);
try {
return JSON.parse(result) as OutputType;
} catch (err) {
@@ -674,21 +920,14 @@ export class CodeQLCliServer implements Disposable {
* @param command The `codeql` command to be run, provided as an array of command/subcommand names.
* @param commandArgs The arguments to pass to the `codeql` command.
* @param description Description of the action being run, to be shown in log and error messages.
* @param addFormat Whether or not to add commandline arguments to specify the format as JSON.
* @param progressReporter Used to output progress messages, e.g. to the status bar.
* @param runOptions Options for running the command.
* @returns The contents of the command's stdout, if the command succeeded.
*/
async runJsonCodeQlCliCommandWithAuthentication<OutputType>(
command: string[],
commandArgs: string[],
description: string,
{
addFormat,
progressReporter,
}: {
addFormat?: boolean;
progressReporter?: ProgressReporter;
} = {},
runOptions: Omit<JsonRunOptions, "onLine"> = {},
): Promise<OutputType> {
const accessToken = await this.app.credentials.getExistingAccessToken();
@@ -699,8 +938,7 @@ export class CodeQLCliServer implements Disposable {
[...extraArgs, ...commandArgs],
description,
{
addFormat,
progressReporter,
...runOptions,
onLine: async (line) => {
if (line.startsWith("Enter value for --github-auth-stdin")) {
try {
@@ -973,10 +1211,15 @@ export class CodeQLCliServer implements Disposable {
outputPath: string,
endSummaryPath: string,
): Promise<string> {
const supportsGenerateSummarySymbolMap =
await this.cliConstraints.supportsGenerateSummarySymbolMap();
const subcommandArgs = [
"--format=text",
`--end-summary=${endSummaryPath}`,
"--sourcemap",
...(supportsGenerateSummarySymbolMap
? ["--summary-symbol-map", "--minify-output"]
: []),
inputPath,
outputPath,
];
@@ -1256,12 +1499,6 @@ export class CodeQLCliServer implements Disposable {
): Promise<QlpacksInfo> {
const args = this.getAdditionalPacksArg(additionalPacks);
if (extensionPacksOnly) {
if (!(await this.cliConstraints.supportsQlpacksKind())) {
void this.logger.log(
"Warning: Running with extension packs is only supported by CodeQL CLI v2.12.3 or later.",
);
return {};
}
args.push("--kind", "extension", "--no-recursive");
} else if (kind) {
args.push("--kind", kind);
@@ -1369,25 +1606,30 @@ export class CodeQLCliServer implements Disposable {
async packAdd(dir: string, queryLanguage: QueryLanguage) {
const args = ["--dir", dir];
args.push(`codeql/${queryLanguage}-all`);
return this.runJsonCodeQlCliCommandWithAuthentication(
return this.runCodeQlCliCommand(
["pack", "add"],
args,
`Adding and installing ${queryLanguage} pack dependency.`,
{
addFormat: false,
},
);
}
/**
* Downloads a specified pack.
* @param packs The `<package-scope/name[@version]>` of the packs to download.
* @param token The cancellation token. If not specified, the command will be run in the CLI server.
*/
async packDownload(packs: string[]) {
async packDownload(
packs: string[],
token?: CancellationToken,
): Promise<PackDownloadResult> {
return this.runJsonCodeQlCliCommandWithAuthentication(
["pack", "download"],
packs,
"Downloading packs",
{
runInNewProcess: !!token, // Only run in a new process if a token is provided
token,
},
);
}
@@ -1400,15 +1642,13 @@ export class CodeQLCliServer implements Disposable {
args.push("--mode", "update");
}
if (workspaceFolders?.length > 0) {
if (await this.cliConstraints.supportsAdditionalPacksInstall()) {
args.push(
// Allow prerelease packs from the ql submodule.
"--allow-prerelease",
// Allow the use of --additional-packs argument without issueing a warning
"--no-strict-mode",
...this.getAdditionalPacksArg(workspaceFolders),
);
}
args.push(
// Allow prerelease packs from the ql submodule.
"--allow-prerelease",
// Allow the use of --additional-packs argument without issueing a warning
"--no-strict-mode",
...this.getAdditionalPacksArg(workspaceFolders),
);
}
return this.runJsonCodeQlCliCommandWithAuthentication(
["pack", "install"],
@@ -1417,16 +1657,30 @@ export class CodeQLCliServer implements Disposable {
);
}
/**
* Compile a CodeQL pack and bundle it into a single file.
*
* @param sourcePackDir The directory of the input CodeQL pack.
* @param workspaceFolders The workspace folders to search for additional packs.
* @param outputBundleFile The path to the output bundle file.
* @param outputPackDir The directory to contain the unbundled output pack.
* @param moreOptions Additional options to be passed to `codeql pack bundle`.
* @param token Cancellation token for the operation.
*/
async packBundle(
dir: string,
sourcePackDir: string,
workspaceFolders: string[],
outputPath: string,
outputBundleFile: string,
outputPackDir: string,
moreOptions: string[],
token?: CancellationToken,
): Promise<void> {
const args = [
"-o",
outputPath,
dir,
outputBundleFile,
sourcePackDir,
"--pack-path",
outputPackDir,
...moreOptions,
...this.getAdditionalPacksArg(workspaceFolders),
];
@@ -1435,6 +1689,10 @@ export class CodeQLCliServer implements Disposable {
["pack", "bundle"],
args,
"Bundling pack",
{
runInNewProcess: true,
token,
},
);
}
@@ -1481,29 +1739,21 @@ export class CodeQLCliServer implements Disposable {
);
}
public async getVersion() {
if (!this._version) {
try {
const newVersion = await this.refreshVersion();
this._version = newVersion;
this._versionChangedListeners.forEach((listener) =>
listener(newVersion),
);
public async getVersion(): Promise<SemVer> {
return (await this.getVersionAndFeatures()).version;
}
// this._version is only undefined upon config change, so we reset CLI-based context key only when necessary.
await this.app.commands.execute(
"setContext",
"codeql.supportsQuickEvalCount",
newVersion.compare(
CliVersionConstraint.CLI_VERSION_WITH_QUICK_EVAL_COUNT,
) >= 0,
);
await this.app.commands.execute(
"setContext",
"codeql.supportsTrimCache",
newVersion.compare(
CliVersionConstraint.CLI_VERSION_WITH_TRIM_CACHE,
) >= 0,
public async getFeatures(): Promise<CliFeatures> {
return (await this.getVersionAndFeatures()).features;
}
private async getVersionAndFeatures(): Promise<VersionAndFeatures> {
if (!this._versionAndFeatures) {
try {
const newVersionAndFeatures = await this.refreshVersion();
this._versionAndFeatures = newVersionAndFeatures;
this._versionChangedListeners.forEach((listener) =>
listener(newVersionAndFeatures),
);
} catch (e) {
this._versionChangedListeners.forEach((listener) =>
@@ -1512,23 +1762,23 @@ export class CodeQLCliServer implements Disposable {
throw e;
}
}
return this._version;
return this._versionAndFeatures;
}
public addVersionChangedListener(listener: VersionChangedListener) {
if (this._version) {
listener(this._version);
if (this._versionAndFeatures) {
listener(this._versionAndFeatures);
}
this._versionChangedListeners.push(listener);
}
private async refreshVersion() {
private async refreshVersion(): Promise<VersionAndFeatures> {
const distribution = await this.distributionProvider.getDistribution();
switch (distribution.kind) {
case FindDistributionResultKind.CompatibleDistribution:
// eslint-disable-next-line no-fallthrough -- Intentional fallthrough
case FindDistributionResultKind.IncompatibleDistribution:
return distribution.version;
return distribution.versionAndFeatures;
default:
// We should not get here because if no distributions are available, then
@@ -1541,11 +1791,8 @@ export class CodeQLCliServer implements Disposable {
return paths.length ? ["--additional-packs", paths.join(delimiter)] : [];
}
public async useExtensionPacks(): Promise<boolean> {
return (
this.cliConfig.useExtensionPacks &&
(await this.cliConstraints.supportsQlpacksKind())
);
public useExtensionPacks(): boolean {
return this.cliConfig.useExtensionPacks;
}
public async setUseExtensionPacks(useExtensionPacks: boolean) {
@@ -1573,8 +1820,8 @@ export function spawnServer(
command: string[],
commandArgs: string[],
logger: Logger,
stderrListener: (data: any) => void,
stdoutListener?: (data: any) => void,
stderrListener: (data: string | Buffer) => void,
stdoutListener?: (data: string | Buffer) => void,
progressReporter?: ProgressReporter,
): ChildProcessWithoutNullStreams {
// Enable verbose logging.
@@ -1594,7 +1841,7 @@ export function spawnServer(
);
}
let lastStdout: any = undefined;
let lastStdout: string | Buffer | undefined = undefined;
child.stdout!.on("data", (data) => {
lastStdout = data;
});
@@ -1647,7 +1894,7 @@ function isEnvTrue(name: string): boolean {
);
}
export function shouldDebugIdeServer() {
export function shouldDebugLanguageServer() {
return isEnvTrue("IDE_SERVER_JAVA_DEBUG");
}
@@ -1662,47 +1909,16 @@ function shouldDebugCliServer() {
export class CliVersionConstraint {
// The oldest version of the CLI that we support. This is used to determine
// whether to show a warning about the CLI being too old on startup.
public static OLDEST_SUPPORTED_CLI_VERSION = new SemVer("2.11.6");
public static OLDEST_SUPPORTED_CLI_VERSION = new SemVer("v2.15.5");
/**
* CLI version that supports the `--kind` option for the `resolve qlpacks` command.
*/
public static CLI_VERSION_WITH_QLPACKS_KIND = new SemVer("2.12.3");
/**
* CLI version that supports the `--additional-packs` option for the `pack install` command.
*/
public static CLI_VERSION_WITH_ADDITIONAL_PACKS_INSTALL = new SemVer(
"2.12.4",
);
public static CLI_VERSION_GLOBAL_CACHE = new SemVer("2.12.4");
/**
* CLI version where the query server supports quick-eval count mode.
*/
public static CLI_VERSION_WITH_QUICK_EVAL_COUNT = new SemVer("2.13.3");
/**
* CLI version where the `generate extensible-predicate-metadata`
* command was implemented.
*/
public static CLI_VERSION_WITH_EXTENSIBLE_PREDICATE_METADATA = new SemVer(
"2.14.3",
public static CLI_VERSION_WITHOUT_MRVA_EXTENSIBLE_PREDICATE_HACK = new SemVer(
"2.16.1",
);
/**
* CLI version where the langauge server supports visisbility change notifications.
* CLI version where there is support for multiple queries on the pack create command.
*/
public static CLI_VERSION_WITH_VISIBILITY_NOTIFICATIONS = new SemVer(
"2.14.0",
);
/**
* CLI version where the query server supports the `evaluation/trimCache` method
* with `codeql database cleanup --mode=trim` semantics.
*/
public static CLI_VERSION_WITH_TRIM_CACHE = new SemVer("2.15.1");
public static CLI_VERSION_WITH_MULTI_QUERY_PACK_CREATE = new SemVer("2.16.1");
constructor(private readonly cli: CodeQLCliServer) {
/**/
@@ -1712,37 +1928,24 @@ export class CliVersionConstraint {
return (await this.cli.getVersion()).compare(v) >= 0;
}
async supportsQlpacksKind() {
async preservesExtensiblePredicatesInMrvaPack() {
// Negated, because we _stopped_ preserving these in 2.16.1.
return !(await this.isVersionAtLeast(
CliVersionConstraint.CLI_VERSION_WITHOUT_MRVA_EXTENSIBLE_PREDICATE_HACK,
));
}
async supportsPackCreateWithMultipleQueries() {
return this.isVersionAtLeast(
CliVersionConstraint.CLI_VERSION_WITH_QLPACKS_KIND,
CliVersionConstraint.CLI_VERSION_WITH_MULTI_QUERY_PACK_CREATE,
);
}
async supportsAdditionalPacksInstall() {
return this.isVersionAtLeast(
CliVersionConstraint.CLI_VERSION_WITH_ADDITIONAL_PACKS_INSTALL,
);
async supportsMrvaPackCreate(): Promise<boolean> {
return (await this.cli.getFeatures()).mrvaPackCreate === true;
}
async usesGlobalCompilationCache() {
return this.isVersionAtLeast(CliVersionConstraint.CLI_VERSION_GLOBAL_CACHE);
}
async supportsVisibilityNotifications() {
return this.isVersionAtLeast(
CliVersionConstraint.CLI_VERSION_WITH_VISIBILITY_NOTIFICATIONS,
);
}
async supportsQuickEvalCount() {
return this.isVersionAtLeast(
CliVersionConstraint.CLI_VERSION_WITH_QUICK_EVAL_COUNT,
);
}
async supportsGenerateExtensiblePredicateMetadata() {
return this.isVersionAtLeast(
CliVersionConstraint.CLI_VERSION_WITH_EXTENSIBLE_PREDICATE_METADATA,
);
async supportsGenerateSummarySymbolMap(): Promise<boolean> {
return (await this.cli.getFeatures()).generateSummarySymbolMap === true;
}
}

View File

@@ -1,11 +1,12 @@
import type { WriteStream } from "fs";
import { createWriteStream, mkdtemp, pathExists, remove } from "fs-extra";
import { tmpdir } from "os";
import { delimiter, dirname, join } from "path";
import type { SemVer } from "semver";
import { Range, satisfies } from "semver";
import type { Event, ExtensionContext } from "vscode";
import type { DistributionConfig } from "../config";
import { extLogger } from "../common/logging/vscode";
import type { VersionAndFeatures } from "./cli-version";
import { getCodeQlCliVersion } from "./cli-version";
import type { ProgressCallback } from "../common/vscode/progress";
import { reportStreamProgress } from "../common/vscode/progress";
@@ -26,6 +27,8 @@ import { unzipToDirectoryConcurrently } from "../common/unzip-concurrently";
import { reportUnzipProgress } from "../common/vscode/unzip-progress";
import type { Release } from "./distribution/release";
import { ReleasesApiConsumer } from "./distribution/releases-api-consumer";
import { createTimeoutSignal } from "../common/fetch-stream";
import { AbortError } from "node-fetch";
/**
* distribution.ts
@@ -88,11 +91,11 @@ export class DistributionManager implements DistributionProvider {
kind: FindDistributionResultKind.NoDistribution,
};
}
const version = await getCodeQlCliVersion(
const versionAndFeatures = await getCodeQlCliVersion(
distribution.codeQlPath,
extLogger,
);
if (version === undefined) {
if (versionAndFeatures === undefined) {
return {
distribution,
kind: FindDistributionResultKind.UnknownCompatibilityDistribution,
@@ -119,17 +122,21 @@ export class DistributionManager implements DistributionProvider {
distribution.kind !== DistributionKind.ExtensionManaged ||
this.config.includePrerelease;
if (!satisfies(version, this.versionRange, { includePrerelease })) {
if (
!satisfies(versionAndFeatures.version, this.versionRange, {
includePrerelease,
})
) {
return {
distribution,
kind: FindDistributionResultKind.IncompatibleDistribution,
version,
versionAndFeatures,
};
}
return {
distribution,
kind: FindDistributionResultKind.CompatibleDistribution,
version,
versionAndFeatures,
};
}
@@ -380,15 +387,25 @@ class ExtensionSpecificDistributionManager {
);
}
const assetStream =
await this.createReleasesApiConsumer().streamBinaryContentOfAsset(
assets[0],
);
const {
signal,
onData,
dispose: disposeTimeout,
} = createTimeoutSignal(this.config.downloadTimeout);
const tmpDirectory = await mkdtemp(join(tmpdir(), "vscode-codeql"));
let archiveFile: WriteStream | undefined = undefined;
try {
const assetStream =
await this.createReleasesApiConsumer().streamBinaryContentOfAsset(
assets[0],
signal,
);
const archivePath = join(tmpDirectory, "distributionDownload.zip");
const archiveFile = createWriteStream(archivePath);
archiveFile = createWriteStream(archivePath);
const contentLength = assetStream.headers.get("content-length");
const totalNumBytes = contentLength
@@ -401,12 +418,23 @@ class ExtensionSpecificDistributionManager {
progressCallback,
);
await new Promise((resolve, reject) =>
assetStream.body.on("data", onData);
await new Promise((resolve, reject) => {
if (!archiveFile) {
throw new Error("Invariant violation: archiveFile not set");
}
assetStream.body
.pipe(archiveFile)
.on("finish", resolve)
.on("error", reject),
);
.on("error", reject);
// If an error occurs on the body, we also want to reject the promise (e.g. during a timeout error).
assetStream.body.on("error", reject);
});
disposeTimeout();
await this.bumpDistributionFolderIndex();
@@ -423,7 +451,19 @@ class ExtensionSpecificDistributionManager {
)
: undefined,
);
} catch (e) {
if (e instanceof AbortError) {
const thrownError = new AbortError("The download timed out.");
thrownError.stack = e.stack;
throw thrownError;
}
throw e;
} finally {
disposeTimeout();
archiveFile?.close();
await remove(tmpDirectory);
}
}
@@ -599,7 +639,7 @@ interface DistributionResult {
interface CompatibleDistributionResult extends DistributionResult {
kind: FindDistributionResultKind.CompatibleDistribution;
version: SemVer;
versionAndFeatures: VersionAndFeatures;
}
interface UnknownCompatibilityDistributionResult extends DistributionResult {
@@ -608,7 +648,7 @@ interface UnknownCompatibilityDistributionResult extends DistributionResult {
interface IncompatibleDistributionResult extends DistributionResult {
kind: FindDistributionResultKind.IncompatibleDistribution;
version: SemVer;
versionAndFeatures: VersionAndFeatures;
}
interface NoDistributionResult {

View File

@@ -90,21 +90,28 @@ export class ReleasesApiConsumer {
public async streamBinaryContentOfAsset(
asset: ReleaseAsset,
signal?: AbortSignal,
): Promise<Response> {
const apiPath = `/repos/${this.repositoryNwo}/releases/assets/${asset.id}`;
return await this.makeApiCall(apiPath, {
accept: "application/octet-stream",
});
return await this.makeApiCall(
apiPath,
{
accept: "application/octet-stream",
},
signal,
);
}
protected async makeApiCall(
apiPath: string,
additionalHeaders: { [key: string]: string } = {},
signal?: AbortSignal,
): Promise<Response> {
const response = await this.makeRawRequest(
ReleasesApiConsumer.apiBase + apiPath,
Object.assign({}, this.defaultHeaders, additionalHeaders),
signal,
);
if (!response.ok) {
@@ -129,11 +136,13 @@ export class ReleasesApiConsumer {
private async makeRawRequest(
requestUrl: string,
headers: { [key: string]: string },
signal?: AbortSignal,
redirectCount = 0,
): Promise<Response> {
const response = await fetch(requestUrl, {
headers,
redirect: "manual",
signal,
});
const redirectUrl = response.headers.get("location");
@@ -153,7 +162,12 @@ export class ReleasesApiConsumer {
// mechanism is provided.
delete headers["authorization"];
}
return await this.makeRawRequest(redirectUrl, headers, redirectCount + 1);
return await this.makeRawRequest(
redirectUrl,
headers,
signal,
redirectCount + 1,
);
}
return response;
@@ -191,7 +205,7 @@ export interface GithubRelease {
*
* This type must match the format of the GitHub API and is not intended to be used outside of this file except for tests. Please use the `ReleaseAsset` type instead.
*/
export interface GithubReleaseAsset {
interface GithubReleaseAsset {
id: number;
name: string;
size: number;

View File

@@ -1,5 +1,5 @@
import type { CodeQLCliServer } from "./cli";
import type { Uri } from "vscode";
import type { CancellationToken, Uri } from "vscode";
import { window } from "vscode";
import {
getLanguageDisplayName,
@@ -50,6 +50,7 @@ export async function findLanguage(
export async function askForLanguage(
cliServer: CodeQLCliServer,
throwOnEmpty = true,
token?: CancellationToken,
): Promise<QueryLanguage | undefined> {
const supportedLanguages = await cliServer.getSupportedLanguages();
@@ -62,10 +63,14 @@ export async function askForLanguage(
}))
.sort((a, b) => a.label.localeCompare(b.label));
const selectedItem = await window.showQuickPick(items, {
placeHolder: "Select target language for your query",
ignoreFocusOut: true,
});
const selectedItem = await window.showQuickPick(
items,
{
placeHolder: "Select target query language",
ignoreFocusOut: true,
},
token,
);
if (!selectedItem) {
// This only happens if the user cancels the quick pick.
if (throwOnEmpty) {

View File

@@ -31,4 +31,9 @@ export interface Credentials {
* @returns An OAuth access token, or undefined.
*/
getExistingAccessToken(): Promise<string | undefined>;
/**
* Returns the ID of the authentication provider to use.
*/
authProviderId: string;
}

View File

@@ -1,10 +1,9 @@
import type { CommandManager } from "../packages/commands";
import type { Uri, Range, TextDocumentShowOptions } from "vscode";
import type { Uri, Range, TextDocumentShowOptions, TestItem } from "vscode";
import type { AstItem } from "../language-support";
import type { DbTreeViewItem } from "../databases/ui/db-tree-view-item";
import type { DatabaseItem } from "../databases/local-databases";
import type { QueryHistoryInfo } from "../query-history/query-history-info";
import type { TestTreeNode } from "../query-testing/test-tree-node";
import type {
VariantAnalysis,
VariantAnalysisScannedRepository,
@@ -221,6 +220,7 @@ export type LocalDatabasesCommands = {
// Explorer context menu
"codeQL.setCurrentDatabase": (uri: Uri) => Promise<void>;
"codeQL.importTestDatabase": (uri: Uri) => Promise<void>;
// Database panel view title commands
"codeQLDatabases.chooseDatabaseFolder": () => Promise<void>;
@@ -273,12 +273,17 @@ export type VariantAnalysisCommands = {
"codeQL.openVariantAnalysisLogs": (
variantAnalysisId: number,
) => Promise<void>;
"codeQLModelAlerts.openVariantAnalysisLogs": (
variantAnalysisId: number,
) => Promise<void>;
"codeQL.openVariantAnalysisView": (
variantAnalysisId: number,
) => Promise<void>;
"codeQL.runVariantAnalysis": (uri?: Uri) => Promise<void>;
"codeQL.runVariantAnalysisContextEditor": (uri?: Uri) => Promise<void>;
"codeQL.runVariantAnalysis": () => Promise<void>;
"codeQL.runVariantAnalysisContextEditor": (uri: Uri) => Promise<void>;
"codeQL.runVariantAnalysisContextExplorer": ExplorerSelectionCommandFunction<Uri>;
"codeQLQueries.runVariantAnalysisContextMenu": TreeViewContextSingleSelectionCommandFunction<QueryTreeViewItem>;
"codeQL.runVariantAnalysisPublishedPack": () => Promise<void>;
};
export type DatabasePanelCommands = {
@@ -334,11 +339,9 @@ export type SummaryLanguageSupportCommands = {
};
export type TestUICommands = {
"codeQLTests.showOutputDifferences": (node: TestTreeNode) => Promise<void>;
"codeQLTests.acceptOutput": (node: TestTreeNode) => Promise<void>;
"codeQLTests.acceptOutputContextTestItem": (
node: TestTreeNode,
) => Promise<void>;
"codeQLTests.showOutputDifferences": (node: TestItem) => Promise<void>;
"codeQLTests.acceptOutput": (node: TestItem) => Promise<void>;
"codeQLTests.acceptOutputContextTestItem": (node: TestItem) => Promise<void>;
};
export type MockGitHubApiServerCommands = {

View File

@@ -0,0 +1,57 @@
// Based on https://github.com/microsoft/vscode/blob/edfd5b8ba54d50f3f5c2ebee877af088803def88/src/vs/base/common/labels.ts#L316C1-L400
/**
* Helper to insert values for specific template variables into the string. E.g. "this ${is} a ${template}" can be
* passed to this function together with an object that maps "is" and "template" to strings to have them replaced.
*
* @param template string to which template is applied
* @param values the values of the templates to use
*/
export function substituteConfigVariables(
template: string,
values: {
[key: string]: string | undefined | null;
},
): string {
const segments: string[] = [];
let inVariable = false;
let currentValue = "";
for (const char of template) {
// Beginning of variable
if (char === "$" || (inVariable && char === "{")) {
if (currentValue) {
segments.push(currentValue);
}
currentValue = "";
inVariable = true;
}
// End of variable
else if (char === "}" && inVariable) {
const resolved = values[currentValue];
// Variable
if (resolved && resolved.length > 0) {
segments.push(resolved);
}
// If the variable, doesn't exist, we discard it (i.e. replace it by the empty string)
currentValue = "";
inVariable = false;
}
// Text or Variable Name
else {
currentValue += char;
}
}
// Tail
if (currentValue && !inVariable) {
segments.push(currentValue);
}
return segments.join("");
}

View File

@@ -1,7 +1,7 @@
// Avoid explicitly referencing Disposable type in vscode.
// This file cannot have dependencies on the vscode API.
export interface Disposable {
dispose(): any;
dispose(): unknown;
}
export type DisposeHandler = (disposable: Disposable) => void;

View File

@@ -84,12 +84,13 @@ export interface ErrorLike {
stack?: string;
}
function isErrorLike(error: any): error is ErrorLike {
if (
function isErrorLike(error: unknown): error is ErrorLike {
return (
error !== undefined &&
error !== null &&
typeof error === "object" &&
"message" in error &&
typeof error.message === "string" &&
(error.stack === undefined || typeof error.stack === "string")
) {
return true;
}
return false;
(!("stack" in error) || typeof error.stack === "string")
);
}

View File

@@ -0,0 +1,36 @@
import { clearTimeout } from "node:timers";
export function createTimeoutSignal(timeoutSeconds: number): {
signal: AbortSignal;
onData: () => void;
dispose: () => void;
} {
const timeout = timeoutSeconds * 1000;
const abortController = new AbortController();
let timeoutId: NodeJS.Timeout;
// If we don't get any data within the timeout, abort the download
timeoutId = setTimeout(() => {
abortController.abort();
}, timeout);
// If we receive any data within the timeout, reset the timeout
const onData = () => {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
abortController.abort();
}, timeout);
};
const dispose = () => {
clearTimeout(timeoutId);
};
return {
signal: abortController.signal,
onData,
dispose,
};
}

View File

@@ -0,0 +1,44 @@
type FilenameOptions = {
removeDots?: boolean;
};
/**
* This will create a filename from an arbitrary string by removing
* all characters which are not allowed in filenames and making them
* more filesystem-friendly be replacing undesirable characters with
* hyphens. The result will always be lowercase ASCII.
*
* @param str The string to create a filename from
* @param removeDots Whether to remove dots from the filename [default: false]
* @returns The filename
*/
export function createFilenameFromString(
str: string,
{ removeDots }: FilenameOptions = {},
) {
let fileName = str;
// Lowercase everything
fileName = fileName.toLowerCase();
// Replace all spaces, underscores, slashes, and backslashes with hyphens
fileName = fileName.replaceAll(/[\s_/\\]+/g, "-");
// Replace all characters which are not allowed by empty strings
fileName = fileName.replaceAll(/[^a-z0-9.-]/g, "");
// Remove any leading or trailing hyphens or dots
fileName = fileName.replaceAll(/^[.-]+|[.-]+$/g, "");
// Replace dots by hyphens if dots are not allowed
if (removeDots) {
fileName = fileName.replaceAll(/\./g, "-");
}
// Remove any duplicate hyphens
fileName = fileName.replaceAll(/-{2,}/g, "-");
// Remove any duplicate dots
fileName = fileName.replaceAll(/\.{2,}/g, ".");
return fileName;
}

View File

@@ -1,5 +1,5 @@
import { pathExists, stat, readdir, opendir } from "fs-extra";
import { isAbsolute, join, relative, resolve } from "path";
import { pathExists, stat, readdir, opendir, lstatSync } from "fs-extra";
import { dirname, isAbsolute, join, relative, resolve } from "path";
import { tmpdir as osTmpdir } from "os";
/**
@@ -124,11 +124,84 @@ export interface IOError {
readonly code: string;
}
export function isIOError(e: any): e is IOError {
return e.code !== undefined && typeof e.code === "string";
export function isIOError(e: unknown): e is IOError {
return (
e !== undefined &&
e !== null &&
typeof e === "object" &&
"code" in e &&
typeof e.code === "string"
);
}
// This function is a wrapper around `os.tmpdir()` to make it easier to mock in tests.
export function tmpdir(): string {
return osTmpdir();
}
/**
* Finds the common parent directory of an arbitrary number of absolute paths. The result
* will be an absolute path.
* @param paths The array of paths.
* @returns The common parent directory of the paths.
*/
export function findCommonParentDir(...paths: string[]): string {
if (paths.length === 0) {
throw new Error("At least one path must be provided");
}
if (paths.some((path) => !isAbsolute(path))) {
throw new Error("All paths must be absolute");
}
paths = paths.map((path) => normalizePath(path));
// If there's only one path and it's a file, return its dirname
if (paths.length === 1) {
return lstatSync(paths[0]).isFile() ? dirname(paths[0]) : paths[0];
}
let commonDir = paths[0];
while (!paths.every((path) => containsPath(commonDir, path))) {
if (isTopLevelPath(commonDir)) {
throw new Error(
"Reached filesystem root and didn't find a common parent directory",
);
}
commonDir = dirname(commonDir);
}
return commonDir;
}
function isTopLevelPath(path: string): boolean {
return dirname(path) === path;
}
/**
* Recursively looks for a file in a directory. If the file exists, then returns the directory containing the file.
*
* @param dir The directory to search
* @param toFind The file to recursively look for in this directory
*
* @returns the directory containing the file, or undefined if not found.
*/
export async function findDirWithFile(
dir: string,
...toFind: string[]
): Promise<string | undefined> {
if (!(await stat(dir)).isDirectory()) {
return;
}
const files = await readdir(dir);
if (toFind.some((file) => files.includes(file))) {
return dir;
}
for (const file of files) {
const newPath = join(dir, file);
const result = await findDirWithFile(newPath, ...toFind);
if (result) {
return result;
}
}
return;
}

View File

@@ -29,37 +29,45 @@ function validGitHubNwoOrOwner(
/**
* Extracts an NWO from a GitHub URL.
* @param githubUrl The GitHub repository URL
* @param repositoryUrl The GitHub repository URL
* @param githubUrl The URL of the GitHub instance
* @return The corresponding NWO, or undefined if the URL is not valid
*/
export function getNwoFromGitHubUrl(githubUrl: string): string | undefined {
return getNwoOrOwnerFromGitHubUrl(githubUrl, "nwo");
export function getNwoFromGitHubUrl(
repositoryUrl: string,
githubUrl: URL,
): string | undefined {
return getNwoOrOwnerFromGitHubUrl(repositoryUrl, githubUrl, "nwo");
}
/**
* Extracts an owner from a GitHub URL.
* @param githubUrl The GitHub repository URL
* @param repositoryUrl The GitHub repository URL
* @param githubUrl The URL of the GitHub instance
* @return The corresponding Owner, or undefined if the URL is not valid
*/
export function getOwnerFromGitHubUrl(githubUrl: string): string | undefined {
return getNwoOrOwnerFromGitHubUrl(githubUrl, "owner");
export function getOwnerFromGitHubUrl(
repositoryUrl: string,
githubUrl: URL,
): string | undefined {
return getNwoOrOwnerFromGitHubUrl(repositoryUrl, githubUrl, "owner");
}
function getNwoOrOwnerFromGitHubUrl(
githubUrl: string,
repositoryUrl: string,
githubUrl: URL,
kind: "owner" | "nwo",
): string | undefined {
const validHostnames = [githubUrl.hostname, `www.${githubUrl.hostname}`];
try {
let paths: string[];
const urlElements = githubUrl.split("/");
if (
urlElements[0] === "github.com" ||
urlElements[0] === "www.github.com"
) {
paths = githubUrl.split("/").slice(1);
const urlElements = repositoryUrl.split("/");
if (validHostnames.includes(urlElements[0])) {
paths = repositoryUrl.split("/").slice(1);
} else {
const uri = new URL(githubUrl);
if (uri.hostname !== "github.com" && uri.hostname !== "www.github.com") {
const uri = new URL(repositoryUrl);
if (!validHostnames.includes(uri.hostname)) {
return;
}
paths = uri.pathname.split("/").filter((segment: string) => segment);

View File

@@ -7,6 +7,18 @@
import { RedactableError } from "./errors";
// Matches any type that is not an array. This is useful to help avoid
// nested arrays, or for cases like createSingleSelectionCommand to avoid T
// accidentally getting instantiated as DatabaseItem[] instead of DatabaseItem.
export type NotArray =
| string
| bigint
| number
| boolean
| (object & {
length?: never;
});
/**
* This error is used to indicate a runtime failure of an exhaustivity check enforced at compile time.
*/

View File

@@ -10,10 +10,11 @@ import type {
} from "../variant-analysis/shared/variant-analysis-filter-sort";
import type { ErrorLike } from "../common/errors";
import type { DataFlowPaths } from "../variant-analysis/shared/data-flow-paths";
import type { Method } from "../model-editor/method";
import type { Method, MethodSignature } from "../model-editor/method";
import type { ModeledMethod } from "../model-editor/modeled-method";
import type {
MethodModelingPanelViewState,
ModelAlertsViewState,
ModelEditorViewState,
} from "../model-editor/shared/view-state";
import type { Mode } from "../model-editor/shared/mode";
@@ -24,6 +25,8 @@ import type {
Row,
UrlValueResolvable,
} from "./raw-result-types";
import type { AccessPathSuggestionOptions } from "../model-editor/suggestions";
import type { ModelEvaluationRunState } from "../model-editor/shared/model-evaluation-run-state";
/**
* This module contains types and code that are shared between
@@ -144,6 +147,21 @@ interface SetStateMsg {
parsedResultSets: ParsedResultSets;
}
export interface UserSettings {
/** Whether to display links to the dataflow models that generated particular nodes in a flow path. */
shouldShowProvenance: boolean;
}
export const DEFAULT_USER_SETTINGS: UserSettings = {
shouldShowProvenance: false,
};
/** Message indicating that the user's configuration settings have changed. */
interface SetUserSettingsMsg {
t: "setUserSettings";
userSettings: UserSettings;
}
/**
* Message indicating that the results view should display interpreted
* results.
@@ -188,6 +206,7 @@ interface UntoggleShowProblemsMsg {
export type IntoResultsViewMsg =
| ResultsUpdatingMsg
| SetStateMsg
| SetUserSettingsMsg
| ShowInterpretedPageMsg
| NavigateMsg
| UntoggleShowProblemsMsg;
@@ -205,13 +224,15 @@ export type FromResultsViewMsg =
| OpenFileMsg;
/**
* Message from the results view to open a database source
* Message from the results view to open a source
* file at the provided location.
*/
interface ViewSourceFileMsg {
t: "viewSourceFile";
loc: UrlValueResolvable;
databaseUri: string;
/** URI of the database whose source archive contains the file, or `undefined` to open a file from
* the local disk. The latter case is used for opening links to data extension model files. */
databaseUri: string | undefined;
}
/**
@@ -338,7 +359,8 @@ interface ChangeCompareMessage {
export type ToCompareViewMessage =
| SetComparisonQueryInfoMessage
| SetComparisonsMessage;
| SetComparisonsMessage
| SetUserSettingsMsg;
/**
* Message to the compare view that sets the metadata of the compared queries.
@@ -527,9 +549,10 @@ interface SetMethodsMessage {
methods: Method[];
}
interface SetModeledMethodsMessage {
t: "setModeledMethods";
interface SetModeledAndModifiedMethodsMessage {
t: "setModeledAndModifiedMethods";
methods: Record<string, ModeledMethod[]>;
modifiedMethodSignatures: string[];
}
interface SetModifiedMethodsMessage {
@@ -542,6 +565,11 @@ interface SetInProgressMethodsMessage {
methods: string[];
}
interface SetProcessedByAutoModelMethodsMessage {
t: "setProcessedByAutoModelMethods";
methods: string[];
}
interface SwitchModeMessage {
t: "switchMode";
mode: Mode;
@@ -584,6 +612,23 @@ interface StopGeneratingMethodsFromLlmMessage {
packageName: string;
}
interface StartModelEvaluationMessage {
t: "startModelEvaluation";
}
interface StopModelEvaluationMessage {
t: "stopModelEvaluation";
}
interface OpenModelAlertsViewMessage {
t: "openModelAlertsView";
}
interface RevealInModelAlertsViewMessage {
t: "revealInModelAlertsView";
modeledMethod: ModeledMethod;
}
interface ModelDependencyMessage {
t: "modelDependency";
}
@@ -609,18 +654,36 @@ interface SetInProgressMessage {
inProgress: boolean;
}
interface SetProcessedByAutoModelMessage {
t: "setProcessedByAutoModel";
processedByAutoModel: boolean;
}
interface RevealMethodMessage {
t: "revealMethod";
methodSignature: string;
}
interface SetAccessPathSuggestionsMessage {
t: "setAccessPathSuggestions";
accessPathSuggestions: AccessPathSuggestionOptions;
}
interface SetModelEvaluationRunMessage {
t: "setModelEvaluationRun";
run: ModelEvaluationRunState | undefined;
}
export type ToModelEditorMessage =
| SetExtensionPackStateMessage
| SetMethodsMessage
| SetModeledMethodsMessage
| SetModeledAndModifiedMethodsMessage
| SetModifiedMethodsMessage
| SetInProgressMethodsMessage
| RevealMethodMessage;
| SetProcessedByAutoModelMethodsMessage
| RevealMethodMessage
| SetAccessPathSuggestionsMessage
| SetModelEvaluationRunMessage;
export type FromModelEditorMessage =
| CommonFromViewMessages
@@ -635,11 +698,15 @@ export type FromModelEditorMessage =
| StopGeneratingMethodsFromLlmMessage
| ModelDependencyMessage
| HideModeledMethodsMessage
| SetMultipleModeledMethodsMessage;
| SetMultipleModeledMethodsMessage
| StartModelEvaluationMessage
| StopModelEvaluationMessage
| OpenModelAlertsViewMessage
| RevealInModelAlertsViewMessage;
interface RevealInEditorMessage {
t: "revealInModelEditor";
method: Method;
method: MethodSignature;
}
interface StartModelingMessage {
@@ -657,29 +724,67 @@ interface SetMethodModelingPanelViewStateMessage {
viewState: MethodModelingPanelViewState;
}
interface SetMethodMessage {
t: "setMethod";
method: Method | undefined;
}
interface SetMethodModifiedMessage {
t: "setMethodModified";
isModified: boolean;
}
interface SetNoMethodSelectedMessage {
t: "setNoMethodSelected";
}
interface SetSelectedMethodMessage {
t: "setSelectedMethod";
method: Method;
modeledMethods: ModeledMethod[];
isModified: boolean;
isInProgress: boolean;
processedByAutoModel: boolean;
}
export type ToMethodModelingMessage =
| SetMethodModelingPanelViewStateMessage
| SetMethodMessage
| SetMultipleModeledMethodsMessage
| SetMethodModifiedMessage
| SetNoMethodSelectedMessage
| SetSelectedMethodMessage
| SetInModelingModeMessage
| SetInProgressMessage;
| SetInProgressMessage
| SetProcessedByAutoModelMessage;
interface SetModelAlertsViewStateMessage {
t: "setModelAlertsViewState";
viewState: ModelAlertsViewState;
}
interface OpenModelPackMessage {
t: "openModelPack";
path: string;
}
interface OpenActionsLogsMessage {
t: "openActionsLogs";
variantAnalysisId: number;
}
interface StopEvaluationRunMessage {
t: "stopEvaluationRun";
}
interface RevealModelMessage {
t: "revealModel";
modeledMethod: ModeledMethod;
}
export type ToModelAlertsMessage =
| SetModelAlertsViewStateMessage
| SetVariantAnalysisMessage
| SetRepoResultsMessage
| RevealModelMessage;
export type FromModelAlertsMessage =
| CommonFromViewMessages
| OpenModelPackMessage
| OpenActionsLogsMessage
| StopEvaluationRunMessage
| RevealInEditorMessage;

View File

@@ -10,9 +10,9 @@ import { readFile } from "fs-extra";
* @param path The path to the file.
* @param handler Callback to be invoked for each top-level JSON object in order.
*/
export async function readJsonlFile(
export async function readJsonlFile<T>(
path: string,
handler: (value: any) => Promise<void>,
handler: (value: T) => Promise<void>,
): Promise<void> {
const logSummary = await readFile(path, "utf-8");
@@ -20,7 +20,7 @@ export async function readJsonlFile(
const jsonSummaryObjects: string[] = logSummary.split(/\r?\n\r?\n/g);
for (const obj of jsonSummaryObjects) {
const jsonObj = JSON.parse(obj);
const jsonObj = JSON.parse(obj) as T;
await handler(jsonObj);
}
}

View File

@@ -1,7 +1,10 @@
import { appendFile, ensureFile } from "fs-extra";
import { ensureFile } from "fs-extra";
import { open } from "node:fs/promises";
import type { FileHandle } from "node:fs/promises";
import { isAbsolute } from "path";
import { getErrorMessage } from "../helpers-pure";
import type { Logger, LogOptions } from "./logger";
import type { Disposable } from "../disposable-object";
/**
* An implementation of {@link Logger} that sends the output both to another {@link Logger}
@@ -10,9 +13,10 @@ import type { Logger, LogOptions } from "./logger";
* The first time a message is written, an additional banner is written to the underlying logger
* pointing the user to the "side log" file.
*/
export class TeeLogger implements Logger {
export class TeeLogger implements Logger, Disposable {
private emittedRedirectMessage = false;
private error = false;
private fileHandle: FileHandle | undefined = undefined;
public constructor(
private readonly logger: Logger,
@@ -37,11 +41,15 @@ export class TeeLogger implements Logger {
if (!this.error) {
try {
const trailingNewline = options.trailingNewline ?? true;
await ensureFile(this.location);
if (!this.fileHandle) {
await ensureFile(this.location);
await appendFile(
this.location,
this.fileHandle = await open(this.location, "a");
}
const trailingNewline = options.trailingNewline ?? true;
await this.fileHandle.appendFile(
message + (trailingNewline ? "\n" : ""),
{
encoding: "utf8",
@@ -50,6 +58,14 @@ export class TeeLogger implements Logger {
} catch (e) {
// Write an error message to the primary log, and stop trying to write to the side log.
this.error = true;
try {
await this.fileHandle?.close();
} catch (e) {
void this.logger.log(
`Failed to close file handle: ${getErrorMessage(e)}`,
);
}
this.fileHandle = undefined;
const errorMessage = getErrorMessage(e);
await this.logger.log(
`Error writing to additional log file: ${errorMessage}`,
@@ -65,4 +81,15 @@ export class TeeLogger implements Logger {
show(preserveFocus?: boolean): void {
this.logger.show(preserveFocus);
}
dispose(): void {
try {
void this.fileHandle?.close();
} catch (e) {
void this.logger.log(
`Failed to close file handle: ${getErrorMessage(e)}`,
);
}
this.fileHandle = undefined;
}
}

View File

@@ -11,7 +11,7 @@ export const extLogger = new OutputChannelLogger("CodeQL Extension Log");
export const queryServerLogger = new OutputChannelLogger("CodeQL Query Server");
// Logger for messages from the language server.
export const ideServerLogger = new OutputChannelLogger(
export const languageServerLogger = new OutputChannelLogger(
"CodeQL Language Server",
);

View File

@@ -40,5 +40,5 @@ export interface Memento {
* @param key A string.
* @param value A value. MUST not contain cyclic references.
*/
update(key: string, value: any): Thenable<void>;
update<T>(key: string, value: T | undefined): Thenable<void>;
}

View File

@@ -0,0 +1,4 @@
export interface ModelPackDetails {
name: string;
path: string;
}

View File

@@ -1,4 +1,4 @@
import { join } from "path";
import { dirname, join, parse } from "path";
import { pathExists } from "fs-extra";
export const QLPACK_FILENAMES = ["qlpack.yml", "codeql-pack.yml"];
@@ -8,7 +8,13 @@ export const QLPACK_LOCK_FILENAMES = [
];
export const FALLBACK_QLPACK_FILENAME = QLPACK_FILENAMES[0];
export async function getQlPackPath(
/**
* Gets the path to the QL pack file (a qlpack.yml or
* codeql-pack.yml).
* @param packRoot The root of the pack.
* @returns The path to the qlpack file, or undefined if it doesn't exist.
*/
export async function getQlPackFilePath(
packRoot: string,
): Promise<string | undefined> {
for (const filename of QLPACK_FILENAMES) {
@@ -21,3 +27,28 @@ export async function getQlPackPath(
return undefined;
}
/**
* Recursively find the directory containing qlpack.yml or codeql-pack.yml. If
* no such directory is found, the directory containing the query file is returned.
* @param queryFile The query file to start from.
* @returns The path to the pack root or undefined if it doesn't exist.
*/
export async function findPackRoot(
queryFile: string,
): Promise<string | undefined> {
let dir = dirname(queryFile);
while (!(await getQlPackFilePath(dir))) {
dir = dirname(dir);
if (isFileSystemRoot(dir)) {
return undefined;
}
}
return dir;
}
function isFileSystemRoot(dir: string): boolean {
const pathObj = parse(dir);
return pathObj.root === dir && pathObj.base === "";
}

View File

@@ -0,0 +1,17 @@
export const SARIF_RESULTS_QUERY_KINDS = [
"problem",
"alert",
"path-problem",
"path-alert",
];
/**
* Returns whether this query kind supports producing SARIF results.
*/
export function isSarifResultsQueryKind(kind: string | undefined): boolean {
if (!kind) {
return false;
}
return SARIF_RESULTS_QUERY_KINDS.includes(kind);
}

View File

@@ -1,11 +1,12 @@
export type DeepReadonly<T> = T extends Array<infer R>
? DeepReadonlyArray<R>
: // eslint-disable-next-line @typescript-eslint/ban-types
T extends Function
? T
: T extends object
? DeepReadonlyObject<T>
: T;
export type DeepReadonly<T> =
T extends Array<infer R>
? DeepReadonlyArray<R>
: // eslint-disable-next-line @typescript-eslint/ban-types
T extends Function
? T
: T extends object
? DeepReadonlyObject<T>
: T;
interface DeepReadonlyArray<T> extends ReadonlyArray<DeepReadonly<T>> {}

View File

@@ -1,18 +1,20 @@
import type { Log, Tool } from "sarif";
import type { Log } from "sarif";
import { createReadStream } from "fs-extra";
import { connectTo } from "stream-json/Assembler";
import { getErrorMessage } from "./helpers-pure";
import { withParser } from "stream-json/filters/Pick";
const DUMMY_TOOL: Tool = { driver: { name: "" } };
import { withParser } from "stream-json/filters/Ignore";
export async function sarifParser(
interpretedResultsPath: string,
): Promise<Log> {
try {
// Parse the SARIF file into token streams, filtering out only the results array.
// Parse the SARIF file into token streams, filtering out some of the larger subtrees that we
// don't need.
const pipeline = createReadStream(interpretedResultsPath).pipe(
withParser({ filter: "runs.0.results" }),
withParser({
// We don't need to run's `artifacts` property, nor the driver's `notifications` property.
filter: /^runs\.\d+\.(artifacts|tool\.driver\.notifications)/,
}),
);
// Creates JavaScript objects from the token stream
@@ -38,15 +40,17 @@ export async function sarifParser(
});
asm.on("done", (asm) => {
const log: Log = {
version: "2.1.0",
runs: [
{
tool: DUMMY_TOOL,
results: asm.current ?? [],
},
],
};
const log = asm.current;
// Do some trivial validation. This isn't a full validation of the SARIF file, but it's at
// least enough to ensure that we're not trying to parse complete garbage later.
if (log.runs === undefined || log.runs.length < 1) {
reject(
new Error(
"Invalid SARIF file: expecting at least one run with result.",
),
);
}
resolve(log);
alreadyDone = true;

View File

@@ -0,0 +1,117 @@
import { platform } from "os";
import { basename, dirname, join, normalize, resolve } from "path";
import { lstat, readdir } from "fs/promises";
import type { BaseLogger } from "./logging";
/**
* Expands a path that potentially contains 8.3 short names (e.g. "C:\PROGRA~1" instead of "C:\Program Files").
*
* See https://en.wikipedia.org/wiki/8.3_filename if you're not familiar with Windows 8.3 short names.
*
* @param shortPath The path to expand.
* @returns A normalized, absolute path, with any short components expanded.
*/
export async function expandShortPaths(
shortPath: string,
logger: BaseLogger,
): Promise<string> {
const absoluteShortPath = normalize(resolve(shortPath));
if (platform() !== "win32") {
// POSIX doesn't have short paths.
return absoluteShortPath;
}
void logger.log(`Expanding short paths in: ${absoluteShortPath}`);
// A quick check to see if there might be any short components.
// There might be a case where a short component doesn't contain a `~`, but if there is, I haven't
// found it.
// This may find long components that happen to have a '~', but that's OK.
if (absoluteShortPath.indexOf("~") < 0) {
// No short components to expand.
void logger.log(`Skipping due to no short components`);
return absoluteShortPath;
}
return await expandShortPathRecursive(absoluteShortPath, logger);
}
/**
* Expand a single short path component
* @param dir The absolute path of the directory containing the short path component.
* @param shortBase The shot path component to expand.
* @returns The expanded path component.
*/
async function expandShortPathComponent(
dir: string,
shortBase: string,
logger: BaseLogger,
): Promise<string> {
void logger.log(`Expanding short path component: ${shortBase}`);
const fullPath = join(dir, shortBase);
// Use `lstat` instead of `stat` to avoid following symlinks.
const stats = await lstat(fullPath, { bigint: true });
if (stats.dev === BigInt(0) || stats.ino === BigInt(0)) {
// No inode info, so we won't be able to find this in the directory listing.
void logger.log(`No inode info available. Skipping.`);
return shortBase;
}
void logger.log(`dev/inode: ${stats.dev}/${stats.ino}`);
try {
// Enumerate the children of the parent directory, and try to find one with the same dev/inode.
const children = await readdir(dir);
for (const child of children) {
void logger.log(`considering child: ${child}`);
try {
const childStats = await lstat(join(dir, child), { bigint: true });
void logger.log(`child dev/inode: ${childStats.dev}/${childStats.ino}`);
if (childStats.dev === stats.dev && childStats.ino === stats.ino) {
// Found a match.
void logger.log(`Found a match: ${child}`);
return child;
}
} catch (e) {
// Can't read stats for the child, so skip it.
void logger.log(`Error reading stats for child: ${e}`);
}
}
} catch (e) {
// Can't read the directory, so we won't be able to find this in the directory listing.
void logger.log(`Error reading directory: ${e}`);
return shortBase;
}
void logger.log(`No match found. Returning original.`);
return shortBase;
}
/**
* Expand the short path components in a path, including those in ancestor directories.
* @param shortPath The path to expand.
* @returns The expanded path.
*/
async function expandShortPathRecursive(
shortPath: string,
logger: BaseLogger,
): Promise<string> {
const shortBase = basename(shortPath);
if (shortBase.length === 0) {
// We've reached the root.
return shortPath;
}
const dir = await expandShortPathRecursive(dirname(shortPath), logger);
void logger.log(`dir: ${dir}`);
void logger.log(`base: ${shortBase}`);
if (shortBase.indexOf("~") < 0) {
// This component doesn't have a short name, so just append it to the (long) parent.
void logger.log(`Component is not a short name`);
return join(dir, shortBase);
}
// This component looks like it has a short name, so try to expand it.
const longBase = await expandShortPathComponent(dir, shortBase, logger);
return join(dir, longBase);
}

View File

@@ -17,7 +17,7 @@ export function convertNonPrintableChars(label: string | undefined) {
* If the label contains certain non-printable characters, loop through each
* character and replace it with the cooresponding unicode control label.
*/
const convertedLabelArray: any[] = [];
const convertedLabelArray: string[] = [];
for (let i = 0; i < label.length; i++) {
const labelCheck = label.codePointAt(i)!;
if (labelCheck <= CONTROL_CODE) {

View File

@@ -1,9 +1,4 @@
import type {
CancellationToken,
WebviewView,
WebviewViewProvider,
WebviewViewResolveContext,
} from "vscode";
import type { WebviewView, WebviewViewProvider } from "vscode";
import { Uri } from "vscode";
import type { WebviewKind, WebviewMessage } from "./webview-html";
import { getHtmlForWebview } from "./webview-html";
@@ -28,11 +23,7 @@ export abstract class AbstractWebviewViewProvider<
* This is called when a view first becomes visible. This may happen when the view is
* first loaded or when the user hides and then shows a view again.
*/
public resolveWebviewView(
webviewView: WebviewView,
_context: WebviewViewResolveContext,
_token: CancellationToken,
) {
public resolveWebviewView(webviewView: WebviewView) {
webviewView.webview.options = {
enableScripts: true,
localResourceRoots: [Uri.file(this.app.extensionPath)],

View File

@@ -13,6 +13,8 @@ import { tmpDir } from "../../tmp-dir";
import type { WebviewMessage, WebviewKind } from "./webview-html";
import { getHtmlForWebview } from "./webview-html";
import type { DeepReadonly } from "../readonly";
import { runWithErrorHandling } from "./error-handling";
import { telemetryListener } from "./telemetry";
export type WebviewPanelConfig = {
viewId: string;
@@ -117,7 +119,12 @@ export abstract class AbstractWebview<
);
this.push(
panel.webview.onDidReceiveMessage(
async (e) => this.onMessage(e),
async (e) =>
runWithErrorHandling(
() => this.onMessage(e),
this.app.logger,
telemetryListener,
),
undefined,
),
);

View File

@@ -26,6 +26,8 @@ import {
// All path operations in this file must be on paths *within* the zip
// archive.
import { posix } from "path";
import { DatabaseEventKind } from "../../databases/local-databases/database-events";
import type { DatabaseManager } from "../../databases/local-databases/database-manager";
const path = posix;
@@ -242,6 +244,10 @@ export class ArchiveFileSystemProvider implements FileSystemProvider {
root = new Directory("");
flushCache(zipPath: string) {
this.archives.delete(zipPath);
}
// metadata
async stat(uri: Uri): Promise<FileStat> {
@@ -355,15 +361,35 @@ export class ArchiveFileSystemProvider implements FileSystemProvider {
*/
export const zipArchiveScheme = "codeql-zip-archive";
export function activate(ctx: ExtensionContext) {
export function activate(ctx: ExtensionContext, dbm?: DatabaseManager) {
const afsp = new ArchiveFileSystemProvider();
if (dbm) {
ctx.subscriptions.push(
dbm.onDidChangeDatabaseItem(async ({ kind, item: db }) => {
if (kind === DatabaseEventKind.Remove) {
if (db?.sourceArchive) {
afsp.flushCache(db.sourceArchive.fsPath);
}
}
}),
);
}
ctx.subscriptions.push(
workspace.registerFileSystemProvider(
zipArchiveScheme,
new ArchiveFileSystemProvider(),
{
isCaseSensitive: true,
isReadonly: true,
},
),
// When a file system archive is removed from the workspace, we should
// also remove it from our cache.
workspace.onDidChangeWorkspaceFolders((event) => {
for (const removed of event.removed) {
const zipPath = removed.uri.fsPath;
afsp.flushCache(zipPath);
}
}),
);
ctx.subscriptions.push(
workspace.registerFileSystemProvider(zipArchiveScheme, afsp, {
isCaseSensitive: true,
isReadonly: true,
}),
);
}

View File

@@ -2,8 +2,8 @@ import { authentication } from "vscode";
import type { Octokit } from "@octokit/rest";
import type { Credentials } from "../authentication";
import { AppOctokit } from "../octokit";
export const GITHUB_AUTH_PROVIDER_ID = "github";
import { hasGhecDrUri } from "../../config";
import { getOctokitBaseUrl } from "./octokit";
// We need 'repo' scope for triggering workflows, 'gist' scope for exporting results to Gist,
// and 'read:packages' for reading private CodeQL packages.
@@ -16,30 +16,24 @@ const SCOPES = ["repo", "gist", "read:packages"];
*/
export class VSCodeCredentials implements Credentials {
/**
* A specific octokit to return, otherwise a new authenticated octokit will be created when needed.
*/
private octokit: Octokit | undefined;
/**
* Creates or returns an instance of Octokit.
* Creates or returns an instance of Octokit. The returned instance should
* not be stored and reused, as it may become out-of-date with the current
* authentication session.
*
* @returns An instance of Octokit.
*/
async getOctokit(): Promise<Octokit> {
if (this.octokit) {
return this.octokit;
}
const accessToken = await this.getAccessToken();
return new AppOctokit({
auth: accessToken,
baseUrl: getOctokitBaseUrl(),
});
}
async getAccessToken(): Promise<string> {
const session = await authentication.getSession(
GITHUB_AUTH_PROVIDER_ID,
this.authProviderId,
SCOPES,
{ createIfNone: true },
);
@@ -49,11 +43,18 @@ export class VSCodeCredentials implements Credentials {
async getExistingAccessToken(): Promise<string | undefined> {
const session = await authentication.getSession(
GITHUB_AUTH_PROVIDER_ID,
this.authProviderId,
SCOPES,
{ createIfNone: false },
);
return session?.accessToken;
}
public get authProviderId(): string {
if (hasGhecDrUri()) {
return "github-enterprise";
}
return "github";
}
}

View File

@@ -3,16 +3,10 @@ import { commands } from "vscode";
import type { CommandFunction } from "../../packages/commands";
import { CommandManager } from "../../packages/commands";
import type { NotificationLogger } from "../logging";
import {
showAndLogWarningMessage,
showAndLogExceptionWithTelemetry,
} from "../logging";
import { extLogger } from "../logging/vscode";
import { asError, getErrorMessage } from "../../common/helpers-pure";
import { redactableError } from "../../common/errors";
import { UserCancellationException } from "./progress";
import { telemetryListener } from "./telemetry";
import type { AppTelemetry } from "../telemetry";
import { runWithErrorHandling } from "./error-handling";
/**
* Create a command manager for VSCode, wrapping registerCommandWithErrorHandling
@@ -38,46 +32,17 @@ export function createVSCodeCommandManager<
* @param logger The logger to use for error reporting.
* @param telemetry The telemetry listener to use for error reporting.
*/
export function registerCommandWithErrorHandling(
export function registerCommandWithErrorHandling<
T extends (...args: unknown[]) => Promise<unknown>,
>(
commandId: string,
task: (...args: any[]) => Promise<any>,
task: T,
logger: NotificationLogger = extLogger,
telemetry: AppTelemetry | undefined = telemetryListener,
): Disposable {
return commands.registerCommand(commandId, async (...args: any[]) => {
const startTime = Date.now();
let error: Error | undefined;
try {
return await task(...args);
} catch (e) {
error = asError(e);
const errorMessage = redactableError(error)`${
getErrorMessage(e) || e
} (${commandId})`;
if (e instanceof UserCancellationException) {
// User has cancelled this action manually
if (e.silent) {
void logger.log(errorMessage.fullMessage);
} else {
void showAndLogWarningMessage(logger, errorMessage.fullMessage);
}
} else {
// Include the full stack in the error log only.
const fullMessage = errorMessage.fullMessageWithStack;
void showAndLogExceptionWithTelemetry(logger, telemetry, errorMessage, {
fullMessage,
extraTelemetryProperties: {
command: commandId,
},
});
}
return undefined;
} finally {
const executionTime = Date.now() - startTime;
telemetryListener?.sendCommandUsage(commandId, executionTime, error);
}
});
return commands.registerCommand(commandId, async (...args: Parameters<T>) =>
runWithErrorHandling(task, logger, telemetry, commandId, ...args),
);
}
/**

View File

@@ -0,0 +1,81 @@
import {
showAndLogWarningMessage,
showAndLogExceptionWithTelemetry,
} from "../logging";
import type { NotificationLogger } from "../logging";
import { extLogger } from "../logging/vscode";
import type { AppTelemetry } from "../telemetry";
import { telemetryListener } from "./telemetry";
import { asError, getErrorMessage } from "../helpers-pure";
import { redactableError } from "../errors";
import { UserCancellationException } from "./progress";
import { CliError } from "../../codeql-cli/cli-errors";
import { EOL } from "os";
/**
* Executes a task with error handling. It provides a uniform way to handle errors.
*
* @template T - A function type that takes an unknown number of arguments and returns a Promise.
* @param {T} task - The task to be executed.
* @param {NotificationLogger} [logger=extLogger] - The logger to use for error reporting.
* @param {AppTelemetry | undefined} [telemetry=telemetryListener] - The telemetry listener to use for error reporting.
* @param {string} [commandId] - The optional command id associated with the task.
* @param {...unknown} args - The arguments to be passed to the task.
* @returns {Promise<unknown>} The result of the task, or undefined if an error occurred.
* @throws {Error} If an error occurs during the execution of the task.
*/
export async function runWithErrorHandling<
T extends (...args: unknown[]) => Promise<unknown>,
>(
task: T,
logger: NotificationLogger = extLogger,
telemetry: AppTelemetry | undefined = telemetryListener,
commandId?: string,
...args: unknown[]
): Promise<unknown> {
const startTime = Date.now();
let error: Error | undefined;
try {
return await task(...args);
} catch (e) {
error = asError(e);
const errorMessage = redactableError(error)`${
getErrorMessage(e) || e
}${commandId ? ` (${commandId})` : ""}`;
const extraTelemetryProperties = commandId
? { command: commandId }
: undefined;
if (e instanceof UserCancellationException) {
// User has cancelled this action manually
if (e.silent) {
void logger.log(errorMessage.fullMessage);
} else {
void showAndLogWarningMessage(logger, errorMessage.fullMessage);
}
} else if (e instanceof CliError) {
const fullMessage = `${e.commandDescription} failed with args:${EOL} ${e.commandArgs.join(" ")}${EOL}${
e.stderr ?? e.cause
}`;
void showAndLogExceptionWithTelemetry(logger, telemetry, errorMessage, {
fullMessage,
extraTelemetryProperties,
});
} else {
// Include the full stack in the error log only.
const fullMessage = errorMessage.fullMessageWithStack;
void showAndLogExceptionWithTelemetry(logger, telemetry, errorMessage, {
fullMessage,
extraTelemetryProperties,
});
}
return undefined;
} finally {
if (commandId) {
const executionTime = Date.now() - startTime;
telemetryListener?.sendCommandUsage(commandId, executionTime, error);
}
}
}

View File

@@ -16,7 +16,7 @@ export class MultiCancellationToken implements CancellationToken {
return this.tokens.some((t) => t.isCancellationRequested);
}
onCancellationRequested<T>(listener: (e: T) => any): Disposable {
onCancellationRequested<T>(listener: (e: T) => void): Disposable {
return new DisposableObject(
...this.tokens.map((t) => t.onCancellationRequested(listener)),
);

View File

@@ -18,15 +18,11 @@ class WatcherCollection extends DisposableObject {
* deleted.
* @param thisArgs The `this` argument for the event listener.
*/
public addWatcher(
pattern: GlobPattern,
listener: (e: Uri) => any,
thisArgs: any,
): void {
public addWatcher(pattern: GlobPattern, listener: (e: Uri) => void): void {
const watcher = workspace.createFileSystemWatcher(pattern);
this.push(watcher.onDidCreate(listener, thisArgs));
this.push(watcher.onDidChange(listener, thisArgs));
this.push(watcher.onDidDelete(listener, thisArgs));
this.push(watcher.onDidCreate(listener));
this.push(watcher.onDidChange(listener));
this.push(watcher.onDidDelete(listener));
}
}
@@ -54,7 +50,7 @@ export class MultiFileSystemWatcher extends DisposableObject {
* @param pattern The pattern to watch.
*/
public addWatch(pattern: GlobPattern): void {
this.watchers.addWatcher(pattern, this.handleDidChange, this);
this.watchers.addWatcher(pattern, this.handleDidChange.bind(this));
}
/**

View File

@@ -0,0 +1,15 @@
import { getGitHubInstanceApiUrl } from "../../config";
/**
* Returns the Octokit base URL to use based on the GitHub instance URL.
*
* This is necessary because the Octokit base URL should not have a trailing
* slash, but this is included by default in a URL.
*/
export function getOctokitBaseUrl(): string {
let apiUrl = getGitHubInstanceApiUrl().toString();
if (apiUrl.endsWith("/")) {
apiUrl = apiUrl.slice(0, -1);
}
return apiUrl;
}

View File

@@ -33,6 +33,14 @@ export interface ProgressUpdate {
message: string;
}
export function progressUpdate(
step: number,
maxStep: number,
message: string,
): ProgressUpdate {
return { step, maxStep, message };
}
export type ProgressCallback = (p: ProgressUpdate) => void;
// Make certain properties within a type optional
@@ -48,7 +56,7 @@ type ProgressOptions = Optional<VSCodeProgressOptions, "location">;
* denote some progress being achieved on this task.
* @param token a cancellation token
*/
export type ProgressTask<R> = (
type ProgressTask<R> = (
progress: ProgressCallback,
token: CancellationToken,
) => Thenable<R>;
@@ -85,29 +93,6 @@ export function withProgress<R>(
);
}
export interface ProgressContext {
progress: ProgressCallback;
token: CancellationToken;
}
/**
* Like `withProgress()`, except that the caller is not required to provide a progress context. If
* the caller does provide one, any long-running operations performed by `task` will use the
* supplied progress context. Otherwise, this function wraps `task` in a new progress context with
* the supplied options.
*/
export function withInheritedProgress<R>(
parent: ProgressContext | undefined,
task: ProgressTask<R>,
options: ProgressOptions,
): Thenable<R> {
if (parent !== undefined) {
return task(parent.progress, parent.token);
} else {
return withProgress(task, options);
}
}
/**
* Displays a progress monitor that indicates how much progess has been made
* reading from a stream.

View File

@@ -3,14 +3,10 @@ import type {
TreeViewContextMultiSelectionCommandFunction,
TreeViewContextSingleSelectionCommandFunction,
} from "../commands";
import type { NotArray } from "../helpers-pure";
import type { NotificationLogger } from "../logging";
import { showAndLogErrorMessage } from "../logging";
// A hack to match types that are not an array, which is useful to help avoid
// misusing createSingleSelectionCommand, e.g. where T accidentally gets instantiated
// as DatabaseItem[] instead of DatabaseItem.
type NotArray = object & { length?: never };
// A way to get the type system to help assert that one type is a supertype of another.
type CreateSupertypeOf<Super, Sub extends Super> = Sub;

View File

@@ -20,6 +20,7 @@ import { showBinaryChoiceWithUrlDialog } from "./dialog";
import type { RedactableError } from "../errors";
import type { SemVer } from "semver";
import type { AppTelemetry } from "../telemetry";
import type { EnvelopeTelemetry } from "applicationinsights/out/Declarations/Contracts";
// Key is injected at build time through the APP_INSIGHTS_KEY environment variable.
const key = "REPLACE-APP-INSIGHTS-KEY";
@@ -128,12 +129,13 @@ export class ExtensionTelemetryListener
);
this.push(this.reporter);
const client = (this.reporter as any).appInsightsClient as TelemetryClient;
// The appInsightsClient field is private but we want to access it anyway
const client = this.reporter["appInsightsClient"] as TelemetryClient;
if (client) {
// add a telemetry processor to delete unwanted properties
client.addTelemetryProcessor((envelope: any) => {
client.addTelemetryProcessor((envelope: EnvelopeTelemetry) => {
tagsToRemove.forEach((tag) => delete envelope.tags[tag]);
const baseDataProperties = (envelope.data as any)?.baseData?.properties;
const baseDataProperties = envelope.data.baseData?.properties;
if (baseDataProperties) {
baseDataPropertiesToRemove.forEach(
(prop) => delete baseDataProperties[prop],
@@ -212,6 +214,22 @@ export class ExtensionTelemetryListener
this.reporter.sendTelemetryErrorEvent("error", properties, {});
}
sendConfigInformation(config: Record<string, string>): void {
if (!this.reporter) {
return;
}
this.reporter.sendTelemetryEvent(
"config",
{
...config,
isCanary: isCanary().toString(),
cliVersion: this.cliVersionStr,
},
{},
);
}
/**
* Displays a popup asking the user if they want to enable telemetry
* for this extension.
@@ -277,7 +295,7 @@ export class ExtensionTelemetryListener
export let telemetryListener: ExtensionTelemetryListener | undefined;
export async function initializeTelemetry(
extension: Extension<any>,
extension: Extension<unknown>,
ctx: ExtensionContext,
): Promise<ExtensionTelemetryListener> {
if (telemetryListener !== undefined) {

View File

@@ -10,7 +10,8 @@ export type WebviewKind =
| "variant-analysis"
| "data-flow-paths"
| "model-editor"
| "method-modeling";
| "method-modeling"
| "model-alerts";
export interface WebviewMessage {
t: string;

View File

@@ -33,6 +33,7 @@ import {
getResultSetNames,
} from "./result-set-names";
import { compareInterpretedResults } from "./interpreted-results";
import { isCanary } from "../config";
interface ComparePair {
from: CompletedLocalQueryInfo;
@@ -116,6 +117,13 @@ export class CompareView extends AbstractWebview<
panel.reveal(undefined, true);
await this.waitForPanelLoaded();
await this.postMessage({
t: "setUserSettings",
userSettings: {
shouldShowProvenance: isCanary(),
},
});
await this.postMessage({
t: "setComparisonQueryInfo",
stats: {

View File

@@ -1,4 +1,80 @@
import type { Result } from "sarif";
import type { Location, Result } from "sarif";
function toCanonicalLocation(location: Location): Location {
if (location.physicalLocation?.artifactLocation?.index !== undefined) {
const canonicalLocation = {
...location,
};
canonicalLocation.physicalLocation = {
...canonicalLocation.physicalLocation,
};
canonicalLocation.physicalLocation.artifactLocation = {
...canonicalLocation.physicalLocation.artifactLocation,
};
// The index is dependent on the result of the SARIF file and usually doesn't really tell
// us anything useful, so we remove it from the comparison.
delete canonicalLocation.physicalLocation.artifactLocation.index;
return canonicalLocation;
}
// Don't create a new object if we don't need to
return location;
}
function toCanonicalResult(result: Result): Result {
const canonicalResult = {
...result,
};
if (canonicalResult.locations) {
canonicalResult.locations =
canonicalResult.locations.map(toCanonicalLocation);
}
if (canonicalResult.relatedLocations) {
canonicalResult.relatedLocations =
canonicalResult.relatedLocations.map(toCanonicalLocation);
}
if (canonicalResult.codeFlows) {
canonicalResult.codeFlows = canonicalResult.codeFlows.map((codeFlow) => {
if (codeFlow.threadFlows) {
return {
...codeFlow,
threadFlows: codeFlow.threadFlows.map((threadFlow) => {
if (threadFlow.locations) {
return {
...threadFlow,
locations: threadFlow.locations.map((threadFlowLocation) => {
if (threadFlowLocation.location) {
return {
...threadFlowLocation,
location: toCanonicalLocation(
threadFlowLocation.location,
),
};
}
return threadFlowLocation;
}),
};
}
return threadFlow;
}),
};
}
return codeFlow;
});
}
return canonicalResult;
}
/**
* Compare the alerts of two queries. Use deep equality to determine if
@@ -25,9 +101,12 @@ export function sarifDiff(fromResults: Result[], toResults: Result[]) {
throw new Error("CodeQL Compare: Target query has no results.");
}
const canonicalFromResults = fromResults.map(toCanonicalResult);
const canonicalToResults = toResults.map(toCanonicalResult);
const results = {
from: arrayDiff(fromResults, toResults),
to: arrayDiff(toResults, fromResults),
from: arrayDiff(canonicalFromResults, canonicalToResults),
to: arrayDiff(canonicalToResults, canonicalFromResults),
};
if (

View File

@@ -4,7 +4,7 @@ import type {
ConfigurationScope,
Event,
} from "vscode";
import { ConfigurationTarget, EventEmitter, workspace } from "vscode";
import { ConfigurationTarget, EventEmitter, workspace, Uri } from "vscode";
import type { DistributionManager } from "./codeql-cli/distribution";
import { extLogger } from "./common/logging/vscode";
import { ONE_DAY_IN_MS } from "./common/time";
@@ -13,6 +13,8 @@ import {
FilterKey,
SortKey,
} from "./variant-analysis/shared/variant-analysis-filter-sort";
import { substituteConfigVariables } from "./common/config-template";
import { getErrorMessage } from "./common/helpers-pure";
export const ALL_SETTINGS: Setting[] = [];
@@ -68,6 +70,95 @@ export const VSCODE_SAVE_BEFORE_START_SETTING = new Setting(
VSCODE_DEBUG_SETTING,
);
const VSCODE_GITHUB_ENTERPRISE_SETTING = new Setting(
"github-enterprise",
undefined,
);
export const VSCODE_GITHUB_ENTERPRISE_URI_SETTING = new Setting(
"uri",
VSCODE_GITHUB_ENTERPRISE_SETTING,
);
/**
* Get the value of the `github-enterprise.uri` setting, parsed as a URI.
* If the value is not set or cannot be parsed, return `undefined`.
*/
export function getEnterpriseUri(): Uri | undefined {
const config = VSCODE_GITHUB_ENTERPRISE_URI_SETTING.getValue<string>();
if (config) {
try {
let uri = Uri.parse(config, true);
if (uri.scheme === "http") {
uri = uri.with({ scheme: "https" });
}
return uri;
} catch (e) {
void extLogger.log(
`Failed to parse the GitHub Enterprise URI: ${getErrorMessage(e)}`,
);
}
}
return undefined;
}
/**
* Is the GitHub Enterprise URI set?
*/
export function hasEnterpriseUri(): boolean {
return getEnterpriseUri() !== undefined;
}
/**
* Does the uri look like GHEC-DR?
*/
function isGhecDrUri(uri: Uri | undefined): boolean {
return uri !== undefined && uri.authority.toLowerCase().endsWith(".ghe.com");
}
/**
* Is the GitHub Enterprise URI set to something that looks like GHEC-DR?
*/
export function hasGhecDrUri(): boolean {
const uri = getEnterpriseUri();
return isGhecDrUri(uri);
}
/**
* The URI for GitHub.com.
*/
export const GITHUB_URL = new URL("https://github.com");
export const GITHUB_API_URL = new URL("https://api.github.com");
/**
* If the GitHub Enterprise URI is set to something that looks like GHEC-DR, return it.
*/
export function getGhecDrUri(): Uri | undefined {
const uri = getEnterpriseUri();
if (isGhecDrUri(uri)) {
return uri;
} else {
return undefined;
}
}
export function getGitHubInstanceUrl(): URL {
const ghecDrUri = getGhecDrUri();
if (ghecDrUri) {
return new URL(ghecDrUri.toString());
}
return GITHUB_URL;
}
export function getGitHubInstanceApiUrl(): URL {
const ghecDrUri = getGhecDrUri();
if (ghecDrUri) {
const url = new URL(ghecDrUri.toString());
url.hostname = `api.${url.hostname}`;
return url;
}
return GITHUB_API_URL;
}
const ROOT_SETTING = new Setting("codeQL");
// Telemetry configuration
@@ -93,6 +184,10 @@ const PERSONAL_ACCESS_TOKEN_SETTING = new Setting(
"personalAccessToken",
DISTRIBUTION_SETTING,
);
const CLI_DOWNLOAD_TIMEOUT_SETTING = new Setting(
"downloadTimeout",
DISTRIBUTION_SETTING,
);
const CLI_CHANNEL_SETTING = new Setting("channel", DISTRIBUTION_SETTING);
// Query History configuration
@@ -108,6 +203,7 @@ const DISTRIBUTION_CHANGE_SETTINGS = [
CUSTOM_CODEQL_PATH_SETTING,
INCLUDE_PRERELEASE_SETTING,
PERSONAL_ACCESS_TOKEN_SETTING,
CLI_CHANNEL_SETTING,
];
export type CLIChannel = "stable" | "nightly";
@@ -117,6 +213,7 @@ export interface DistributionConfig {
updateCustomCodeQlPath: (newPath: string | undefined) => Promise<void>;
includePrerelease: boolean;
personalAccessToken?: string;
downloadTimeout: number;
channel: CLIChannel;
onDidChangeConfiguration?: Event<void>;
}
@@ -271,6 +368,10 @@ export class DistributionConfigListener
return PERSONAL_ACCESS_TOKEN_SETTING.getValue() || undefined;
}
public get downloadTimeout(): number {
return CLI_DOWNLOAD_TIMEOUT_SETTING.getValue() || 10;
}
public async updateCustomCodeQlPath(newPath: string | undefined) {
await CUSTOM_CODEQL_PATH_SETTING.updateValue(
newPath,
@@ -511,6 +612,12 @@ export async function setRemoteControllerRepo(repo: string | undefined) {
export interface VariantAnalysisConfig {
controllerRepo: string | undefined;
showSystemDefinedRepositoryLists: boolean;
/**
* This uses a URL instead of a URI because the URL class is available in
* unit tests and is fully browser-compatible.
*/
githubUrl: URL;
onDidChangeConfiguration?: Event<void>;
}
@@ -520,7 +627,7 @@ export class VariantAnalysisConfigListener
{
protected handleDidChangeConfiguration(e: ConfigurationChangeEvent): void {
this.handleDidChangeConfigurationForRelevantSettings(
[VARIANT_ANALYSIS_SETTING],
[VARIANT_ANALYSIS_SETTING, VSCODE_GITHUB_ENTERPRISE_URI_SETTING],
e,
);
}
@@ -528,6 +635,14 @@ export class VariantAnalysisConfigListener
public get controllerRepo(): string | undefined {
return getRemoteControllerRepo();
}
public get showSystemDefinedRepositoryLists(): boolean {
return !hasEnterpriseUri();
}
public get githubUrl(): URL {
return getGitHubInstanceUrl();
}
}
const VARIANT_ANALYSIS_FILTER_RESULTS = new Setting(
@@ -643,8 +758,16 @@ const DEPRECATED_ALLOW_HTTP_SETTING = new Setting(
const ADDING_DATABASES_SETTING = new Setting("addingDatabases", ROOT_SETTING);
const DOWNLOAD_TIMEOUT_SETTING = new Setting(
"downloadTimeout",
ADDING_DATABASES_SETTING,
);
const ALLOW_HTTP_SETTING = new Setting("allowHttp", ADDING_DATABASES_SETTING);
export function downloadTimeout(): number {
return DOWNLOAD_TIMEOUT_SETTING.getValue<number>() || 10;
}
export function allowHttp(): boolean {
return (
ALLOW_HTTP_SETTING.getValue<boolean>() ||
@@ -653,7 +776,7 @@ export function allowHttp(): boolean {
);
}
const ADD_DATABASE_SOURCE_TO_WORKSPACE_SETTING = new Setting(
export const ADD_DATABASE_SOURCE_TO_WORKSPACE_SETTING = new Setting(
"addDatabaseSourceToWorkspace",
ADDING_DATABASES_SETTING,
);
@@ -714,19 +837,33 @@ const LLM_GENERATION_DEV_ENDPOINT = new Setting(
"llmGenerationDevEndpoint",
MODEL_SETTING,
);
const EXTENSIONS_DIRECTORY = new Setting("extensionsDirectory", MODEL_SETTING);
const ENABLE_RUBY = new Setting("enableRuby", MODEL_SETTING);
const MODEL_EVALUATION = new Setting("evaluation", MODEL_SETTING);
const MODEL_PACK_LOCATION = new Setting("packLocation", MODEL_SETTING);
const MODEL_PACK_NAME = new Setting("packName", MODEL_SETTING);
export type ModelConfigPackVariables = {
database: string;
owner: string;
name: string;
language: string;
};
export interface ModelConfig {
flowGeneration: boolean;
llmGeneration: boolean;
getExtensionsDirectory(languageId: string): string | undefined;
enableRuby: boolean;
getPackLocation(
languageId: string,
variables: ModelConfigPackVariables,
): string;
getPackName(languageId: string, variables: ModelConfigPackVariables): string;
}
export class ModelConfigListener extends ConfigListener implements ModelConfig {
protected handleDidChangeConfiguration(e: ConfigurationChangeEvent): void {
this.handleDidChangeConfigurationForRelevantSettings([MODEL_SETTING], e);
this.handleDidChangeConfigurationForRelevantSettings(
[MODEL_SETTING, VSCODE_GITHUB_ENTERPRISE_URI_SETTING],
e,
);
}
public get flowGeneration(): boolean {
@@ -734,7 +871,7 @@ export class ModelConfigListener extends ConfigListener implements ModelConfig {
}
public get llmGeneration(): boolean {
return !!LLM_GENERATION.getValue<boolean>();
return !!LLM_GENERATION.getValue<boolean>() && !hasEnterpriseUri();
}
/**
@@ -753,14 +890,32 @@ export class ModelConfigListener extends ConfigListener implements ModelConfig {
return LLM_GENERATION_DEV_ENDPOINT.getValue<string | undefined>();
}
public getExtensionsDirectory(languageId: string): string | undefined {
return EXTENSIONS_DIRECTORY.getValue<string>({
languageId,
});
public get modelEvaluation(): boolean {
return !!MODEL_EVALUATION.getValue<boolean>();
}
public get enableRuby(): boolean {
return !!ENABLE_RUBY.getValue<boolean>();
public getPackLocation(
languageId: string,
variables: ModelConfigPackVariables,
): string {
return substituteConfigVariables(
MODEL_PACK_LOCATION.getValue<string>({
languageId,
}),
variables,
);
}
public getPackName(
languageId: string,
variables: ModelConfigPackVariables,
): string {
return substituteConfigVariables(
MODEL_PACK_NAME.getValue<string>({
languageId,
}),
variables,
);
}
}

View File

@@ -1,3 +1,3 @@
### Databases
This folder contains tests for the variant analysis repository panel.
This folder contains code for the (local) databases panel and the variant analysis repositories panel.

View File

@@ -6,6 +6,8 @@ import type { BaseLogger } from "../common/logging";
import { AppOctokit } from "../common/octokit";
import type { ProgressCallback } from "../common/vscode/progress";
import { UserCancellationException } from "../common/vscode/progress";
import type { EndpointDefaults } from "@octokit/types";
import { getOctokitBaseUrl } from "../common/vscode/octokit";
export async function getCodeSearchRepositories(
query: string,
@@ -53,15 +55,19 @@ async function provideOctokitWithThrottling(
const octokit = new MyOctokit({
auth,
baseUrl: getOctokitBaseUrl(),
throttle: {
onRateLimit: (retryAfter: number, options: any): boolean => {
onRateLimit: (retryAfter: number, options: EndpointDefaults): boolean => {
void logger.log(
`Rate Limit detected for request ${options.method} ${options.url}. Retrying after ${retryAfter} seconds!`,
);
return true;
},
onSecondaryRateLimit: (_retryAfter: number, options: any): void => {
onSecondaryRateLimit: (
_retryAfter: number,
options: EndpointDefaults,
): void => {
void logger.log(
`Secondary Rate Limit detected for request ${options.method} ${options.url}`,
);

File diff suppressed because it is too large Load Diff

View File

@@ -16,6 +16,7 @@ import {
} from "./db-item-selection";
import { createRemoteTree } from "./db-tree-creator";
import type { DbConfigValidationError } from "./db-validation-errors";
import type { VariantAnalysisConfig } from "../config";
export class DbManager extends DisposableObject {
public readonly onDbItemsChanged: AppEvent<void>;
@@ -25,6 +26,7 @@ export class DbManager extends DisposableObject {
constructor(
private readonly app: App,
private readonly dbConfigStore: DbConfigStore,
private readonly variantAnalysisConfigListener: VariantAnalysisConfig,
) {
super();
@@ -36,6 +38,10 @@ export class DbManager extends DisposableObject {
this.dbConfigStore.onDidChangeConfig(() => {
this.onDbItemsChangesEventEmitter.fire();
});
this.variantAnalysisConfigListener.onDidChangeConfiguration?.(() => {
this.onDbItemsChangesEventEmitter.fire();
});
}
public getSelectedDbItem(): DbItem | undefined {
@@ -56,7 +62,11 @@ export class DbManager extends DisposableObject {
const expandedItems = this.getExpandedItems();
const remoteTree = createRemoteTree(configResult.value, expandedItems);
const remoteTree = createRemoteTree(
configResult.value,
this.variantAnalysisConfigListener,
expandedItems,
);
return ValueResult.ok(remoteTree.children);
}

View File

@@ -7,6 +7,7 @@ import { DbManager } from "./db-manager";
import { DbPanel } from "./ui/db-panel";
import { DbSelectionDecorationProvider } from "./ui/db-selection-decoration-provider";
import type { DatabasePanelCommands } from "../common/commands";
import { VariantAnalysisConfigListener } from "../config";
export class DbModule extends DisposableObject {
public readonly dbManager: DbManager;
@@ -17,7 +18,13 @@ export class DbModule extends DisposableObject {
super();
this.dbConfigStore = new DbConfigStore(app);
this.dbManager = this.push(new DbManager(app, this.dbConfigStore));
this.dbManager = this.push(
new DbManager(
app,
this.dbConfigStore,
new VariantAnalysisConfigListener(),
),
);
}
public static async initialize(app: App): Promise<DbModule> {

View File

@@ -1,3 +1,4 @@
import type { VariantAnalysisConfig } from "../config";
import type { DbConfig, RemoteRepositoryList } from "./config/db-config";
import { SelectedDbItemKind } from "./config/db-config";
import type {
@@ -13,13 +14,17 @@ import { ExpandedDbItemKind } from "./db-item-expansion";
export function createRemoteTree(
dbConfig: DbConfig,
variantAnalysisConfig: VariantAnalysisConfig,
expandedItems: ExpandedDbItem[],
): RootRemoteDbItem {
const systemDefinedLists = [
createSystemDefinedList(10, dbConfig),
createSystemDefinedList(100, dbConfig),
createSystemDefinedList(1000, dbConfig),
];
const systemDefinedLists =
variantAnalysisConfig.showSystemDefinedRepositoryLists
? [
createSystemDefinedList(10, dbConfig),
createSystemDefinedList(100, dbConfig),
createSystemDefinedList(1000, dbConfig),
]
: [];
const userDefinedRepoLists =
dbConfig.databases.variantAnalysis.repositoryLists.map((r) =>

View File

@@ -3,8 +3,14 @@ import type { Octokit } from "@octokit/rest";
import type { RestEndpointMethodTypes } from "@octokit/plugin-rest-endpoint-methods";
import { showNeverAskAgainDialog } from "../../common/vscode/dialog";
import type { GitHubDatabaseConfig } from "../../config";
import { hasGhecDrUri } from "../../config";
import type { Credentials } from "../../common/authentication";
import { AppOctokit } from "../../common/octokit";
import type { ProgressCallback } from "../../common/vscode/progress";
import { getErrorMessage } from "../../common/helpers-pure";
import { getLanguageDisplayName } from "../../common/query-language";
import { window } from "vscode";
import { extLogger } from "../../common/logging/vscode";
export type CodeqlDatabase =
RestEndpointMethodTypes["codeScanning"]["listCodeqlDatabases"]["response"]["data"][number];
@@ -62,7 +68,10 @@ export async function listDatabases(
credentials: Credentials,
config: GitHubDatabaseConfig,
): Promise<ListDatabasesResult | undefined> {
const hasAccessToken = !!(await credentials.getExistingAccessToken());
// On GHEC-DR, unauthenticated requests will never work, so we should always ask
// for authentication.
const hasAccessToken =
!!(await credentials.getExistingAccessToken()) || hasGhecDrUri();
let octokit = hasAccessToken
? await credentials.getOctokit()
@@ -108,3 +117,92 @@ export async function listDatabases(
octokit,
};
}
export async function convertGithubNwoToDatabaseUrl(
nwo: string,
octokit: Octokit,
progress: ProgressCallback,
language?: string,
): Promise<
| {
databaseUrl: string;
owner: string;
name: string;
databaseId: number;
databaseCreatedAt: string;
commitOid: string | null;
}
| undefined
> {
try {
const [owner, repo] = nwo.split("/");
const response = await octokit.rest.codeScanning.listCodeqlDatabases({
owner,
repo,
});
const languages = response.data.map((db) => db.language);
if (!language || !languages.includes(language)) {
language = await promptForLanguage(languages, progress);
if (!language) {
return;
}
}
const databaseForLanguage = response.data.find(
(db) => db.language === language,
);
if (!databaseForLanguage) {
throw new Error(`No database found for language '${language}'`);
}
return {
databaseUrl: databaseForLanguage.url,
owner,
name: repo,
databaseId: databaseForLanguage.id,
databaseCreatedAt: databaseForLanguage.created_at,
commitOid: databaseForLanguage.commit_oid ?? null,
};
} catch (e) {
void extLogger.log(`Error: ${getErrorMessage(e)}`);
throw new Error(`Unable to get database for '${nwo}'`);
}
}
async function promptForLanguage(
languages: string[],
progress: ProgressCallback | undefined,
): Promise<string | undefined> {
progress?.({
message: "Choose language",
step: 2,
maxStep: 2,
});
if (!languages.length) {
throw new Error("No databases found");
}
if (languages.length === 1) {
return languages[0];
}
const items = languages
.map((language) => ({
label: getLanguageDisplayName(language),
description: language,
language,
}))
.sort((a, b) => a.label.localeCompare(b.label));
const selectedItem = await window.showQuickPick(items, {
placeHolder: "Select the database language to download:",
ignoreFocusOut: true,
});
if (!selectedItem) {
return undefined;
}
return selectedItem.language;
}

View File

@@ -2,10 +2,8 @@ import { window } from "vscode";
import type { Octokit } from "@octokit/rest";
import { showNeverAskAgainDialog } from "../../common/vscode/dialog";
import { getLanguageDisplayName } from "../../common/query-language";
import { downloadGitHubDatabaseFromUrl } from "../database-fetcher";
import type { DatabaseFetcher } from "../database-fetcher";
import { withProgress } from "../../common/vscode/progress";
import type { DatabaseManager } from "../local-databases";
import type { CodeQLCliServer } from "../../codeql-cli/cli";
import type { AppCommandManager } from "../../common/commands";
import type { GitHubDatabaseConfig } from "../../config";
import type { CodeqlDatabase } from "./api";
@@ -58,9 +56,7 @@ export async function downloadDatabaseFromGitHub(
owner: string,
repo: string,
databases: CodeqlDatabase[],
databaseManager: DatabaseManager,
storagePath: string,
cliServer: CodeQLCliServer,
databaseFetcher: DatabaseFetcher,
commandManager: AppCommandManager,
): Promise<void> {
const selectedDatabases = await promptForDatabases(databases);
@@ -72,7 +68,7 @@ export async function downloadDatabaseFromGitHub(
selectedDatabases.map((database) =>
withProgress(
async (progress) => {
await downloadGitHubDatabaseFromUrl(
await databaseFetcher.downloadGitHubDatabaseFromUrl(
database.url,
database.id,
database.created_at,
@@ -81,9 +77,6 @@ export async function downloadDatabaseFromGitHub(
repo,
octokit,
progress,
databaseManager,
storagePath,
cliServer,
true,
false,
);

View File

@@ -14,7 +14,6 @@ import {
} from "./download";
import type { GitHubDatabaseConfig } from "../../config";
import type { DatabaseManager } from "../local-databases";
import type { CodeQLCliServer } from "../../codeql-cli/cli";
import type { CodeqlDatabase, ListDatabasesResult } from "./api";
import { listDatabases } from "./api";
import type { DatabaseUpdate } from "./updates";
@@ -24,6 +23,7 @@ import {
isNewerDatabaseAvailable,
} from "./updates";
import type { Octokit } from "@octokit/rest";
import type { DatabaseFetcher } from "../database-fetcher";
export class GitHubDatabasesModule extends DisposableObject {
/**
@@ -33,8 +33,7 @@ export class GitHubDatabasesModule extends DisposableObject {
constructor(
private readonly app: App,
private readonly databaseManager: DatabaseManager,
private readonly databaseStoragePath: string,
private readonly cliServer: CodeQLCliServer,
private readonly databaseFetcher: DatabaseFetcher,
private readonly config: GitHubDatabaseConfig,
) {
super();
@@ -43,15 +42,13 @@ export class GitHubDatabasesModule extends DisposableObject {
public static async initialize(
app: App,
databaseManager: DatabaseManager,
databaseStoragePath: string,
cliServer: CodeQLCliServer,
databaseFetcher: DatabaseFetcher,
config: GitHubDatabaseConfig,
): Promise<GitHubDatabasesModule> {
const githubDatabasesModule = new GitHubDatabasesModule(
app,
databaseManager,
databaseStoragePath,
cliServer,
databaseFetcher,
config,
);
app.subscriptions.push(githubDatabasesModule);
@@ -185,9 +182,7 @@ export class GitHubDatabasesModule extends DisposableObject {
owner,
repo,
databases,
this.databaseManager,
this.databaseStoragePath,
this.cliServer,
this.databaseFetcher,
this.app.commands,
);
}
@@ -212,8 +207,7 @@ export class GitHubDatabasesModule extends DisposableObject {
repo,
databaseUpdates,
this.databaseManager,
this.databaseStoragePath,
this.cliServer,
this.databaseFetcher,
this.app.commands,
);
}

View File

@@ -1,11 +1,10 @@
import type { CodeqlDatabase } from "./api";
import type { DatabaseItem, DatabaseManager } from "../local-databases";
import type { Octokit } from "@octokit/rest";
import type { CodeQLCliServer } from "../../codeql-cli/cli";
import type { AppCommandManager } from "../../common/commands";
import { getLanguageDisplayName } from "../../common/query-language";
import { showNeverAskAgainDialog } from "../../common/vscode/dialog";
import { downloadGitHubDatabaseFromUrl } from "../database-fetcher";
import type { DatabaseFetcher } from "../database-fetcher";
import { withProgress } from "../../common/vscode/progress";
import { window } from "vscode";
import type { GitHubDatabaseConfig } from "../../config";
@@ -156,8 +155,7 @@ export async function downloadDatabaseUpdateFromGitHub(
repo: string,
updates: DatabaseUpdate[],
databaseManager: DatabaseManager,
storagePath: string,
cliServer: CodeQLCliServer,
databaseFetcher: DatabaseFetcher,
commandManager: AppCommandManager,
): Promise<void> {
const selectedDatabases = await promptForDatabases(
@@ -179,21 +177,19 @@ export async function downloadDatabaseUpdateFromGitHub(
return withProgress(
async (progress) => {
const newDatabase = await downloadGitHubDatabaseFromUrl(
database.url,
database.id,
database.created_at,
database.commit_oid ?? null,
owner,
repo,
octokit,
progress,
databaseManager,
storagePath,
cliServer,
databaseManager.currentDatabaseItem === update.databaseItem,
update.databaseItem.hasSourceArchiveInExplorer(),
);
const newDatabase =
await databaseFetcher.downloadGitHubDatabaseFromUrl(
database.url,
database.id,
database.created_at,
database.commit_oid ?? null,
owner,
repo,
octokit,
progress,
databaseManager.currentDatabaseItem === update.databaseItem,
update.databaseItem.hasSourceArchiveInExplorer(),
);
if (newDatabase === undefined) {
return;
}

View File

@@ -5,6 +5,7 @@ import type {
ProviderResult,
TreeDataProvider,
CancellationToken,
QuickPickItem,
} from "vscode";
import {
EventEmitter,
@@ -15,7 +16,6 @@ import {
ThemeIcon,
ThemeColor,
workspace,
ProgressLocation,
} from "vscode";
import { pathExists, stat, readdir, remove } from "fs-extra";
@@ -24,11 +24,11 @@ import type {
DatabaseItem,
DatabaseManager,
} from "./local-databases";
import type {
ProgressCallback,
ProgressContext,
import type { ProgressCallback } from "../common/vscode/progress";
import {
UserCancellationException,
withProgress,
} from "../common/vscode/progress";
import { withInheritedProgress, withProgress } from "../common/vscode/progress";
import {
isLikelyDatabaseRoot,
isLikelyDbLanguageFolder,
@@ -37,14 +37,9 @@ import {
showAndLogExceptionWithTelemetry,
showAndLogErrorMessage,
} from "../common/logging";
import {
importArchiveDatabase,
promptImportGithubDatabase,
promptImportInternetDatabase,
} from "./database-fetcher";
import type { DatabaseFetcher } from "./database-fetcher";
import { asError, asyncFilter, getErrorMessage } from "../common/helpers-pure";
import type { QueryRunner } from "../query-server";
import { isCanary } from "../config";
import type { App } from "../common/app";
import { redactableError } from "../common/errors";
import type { LocalDatabasesCommands } from "../common/commands";
@@ -52,7 +47,10 @@ import {
createMultiSelectionCommand,
createSingleSelectionCommand,
} from "../common/vscode/selection-commands";
import { tryGetQueryLanguage } from "../common/query-language";
import {
getLanguageDisplayName,
tryGetQueryLanguage,
} from "../common/query-language";
import type { LanguageContextStore } from "../language-context-store";
enum SortOrder {
@@ -111,9 +109,8 @@ class DatabaseTreeDataProvider
// Note that events from the database manager are instances of DatabaseChangedEvent
// and events fired by the UI are instances of DatabaseItem
// When event.item is undefined, then the entire tree is refreshed.
// When event.item is a db item, then only that item is refreshed.
this._onDidChangeTreeData.fire(event.item);
// When a full refresh has occurred, then all items are refreshed by passing undefined.
this._onDidChangeTreeData.fire(event.fullRefresh ? undefined : event.item);
}
private handleDidChangeCurrentDatabaseItem(
@@ -138,7 +135,8 @@ class DatabaseTreeDataProvider
item.iconPath = new ThemeIcon("error", new ThemeColor("errorForeground"));
}
item.tooltip = element.databaseUri.fsPath;
item.description = element.language;
item.description =
element.language + (element.origin?.type === "testproj" ? " (test)" : "");
return item;
}
@@ -227,12 +225,25 @@ async function chooseDatabaseDir(byFolder: boolean): Promise<Uri | undefined> {
return getFirst(chosen);
}
export interface DatabaseSelectionQuickPickItem extends QuickPickItem {
databaseKind: "new" | "existing";
}
export interface DatabaseQuickPickItem extends QuickPickItem {
databaseItem: DatabaseItem;
}
export interface DatabaseImportQuickPickItems extends QuickPickItem {
importType: "URL" | "github" | "archive" | "folder";
}
export class DatabaseUI extends DisposableObject {
private treeDataProvider: DatabaseTreeDataProvider;
public constructor(
private app: App,
private databaseManager: DatabaseManager,
private readonly databaseFetcher: DatabaseFetcher,
languageContext: LanguageContextStore,
private readonly queryServer: QueryRunner,
private readonly storagePath: string,
@@ -262,6 +273,7 @@ export class DatabaseUI extends DisposableObject {
this.handleChooseDatabaseInternet.bind(this),
"codeQL.chooseDatabaseGithub": this.handleChooseDatabaseGithub.bind(this),
"codeQL.setCurrentDatabase": this.handleSetCurrentDatabase.bind(this),
"codeQL.importTestDatabase": this.handleImportTestDatabase.bind(this),
"codeQL.setDefaultTourDatabase":
this.handleSetDefaultTourDatabase.bind(this),
"codeQL.upgradeCurrentDatabase":
@@ -311,10 +323,9 @@ export class DatabaseUI extends DisposableObject {
private async chooseDatabaseFolder(
progress: ProgressCallback,
token: CancellationToken,
): Promise<void> {
try {
await this.chooseAndSetDatabase(true, { progress, token });
await this.chooseAndSetDatabase(true, progress);
} catch (e) {
void showAndLogExceptionWithTelemetry(
this.app.logger,
@@ -328,8 +339,8 @@ export class DatabaseUI extends DisposableObject {
private async handleChooseDatabaseFolder(): Promise<void> {
return withProgress(
async (progress, token) => {
await this.chooseDatabaseFolder(progress, token);
async (progress) => {
await this.chooseDatabaseFolder(progress);
},
{
title: "Adding database from folder",
@@ -339,8 +350,8 @@ export class DatabaseUI extends DisposableObject {
private async handleChooseDatabaseFolderFromPalette(): Promise<void> {
return withProgress(
async (progress, token) => {
await this.chooseDatabaseFolder(progress, token);
async (progress) => {
await this.chooseDatabaseFolder(progress);
},
{
title: "Choose a Database from a Folder",
@@ -481,10 +492,9 @@ export class DatabaseUI extends DisposableObject {
private async chooseDatabaseArchive(
progress: ProgressCallback,
token: CancellationToken,
): Promise<void> {
try {
await this.chooseAndSetDatabase(false, { progress, token });
await this.chooseAndSetDatabase(false, progress);
} catch (e: unknown) {
void showAndLogExceptionWithTelemetry(
this.app.logger,
@@ -498,8 +508,8 @@ export class DatabaseUI extends DisposableObject {
private async handleChooseDatabaseArchive(): Promise<void> {
return withProgress(
async (progress, token) => {
await this.chooseDatabaseArchive(progress, token);
async (progress) => {
await this.chooseDatabaseArchive(progress);
},
{
title: "Adding database from archive",
@@ -509,8 +519,8 @@ export class DatabaseUI extends DisposableObject {
private async handleChooseDatabaseArchiveFromPalette(): Promise<void> {
return withProgress(
async (progress, token) => {
await this.chooseDatabaseArchive(progress, token);
async (progress) => {
await this.chooseDatabaseArchive(progress);
},
{
title: "Choose a Database from an Archive",
@@ -521,13 +531,7 @@ export class DatabaseUI extends DisposableObject {
private async handleChooseDatabaseInternet(): Promise<void> {
return withProgress(
async (progress) => {
await promptImportInternetDatabase(
this.app.commands,
this.databaseManager,
this.storagePath,
progress,
this.queryServer.cliServer,
);
await this.databaseFetcher.promptImportInternetDatabase(progress);
},
{
title: "Adding database from URL",
@@ -538,16 +542,7 @@ export class DatabaseUI extends DisposableObject {
private async handleChooseDatabaseGithub(): Promise<void> {
return withProgress(
async (progress) => {
const credentials = isCanary() ? this.app.credentials : undefined;
await promptImportGithubDatabase(
this.app.commands,
this.databaseManager,
this.storagePath,
credentials,
progress,
this.queryServer.cliServer,
);
await this.databaseFetcher.promptImportGithubDatabase(progress);
},
{
title: "Adding database from GitHub",
@@ -649,14 +644,13 @@ export class DatabaseUI extends DisposableObject {
private async handleClearCache(): Promise<void> {
return withProgress(
async (_progress, token) => {
async () => {
if (
this.queryServer !== undefined &&
this.databaseManager.currentDatabaseItem !== undefined
) {
await this.queryServer.clearCacheInDatabase(
this.databaseManager.currentDatabaseItem,
token,
);
}
},
@@ -668,14 +662,13 @@ export class DatabaseUI extends DisposableObject {
private async handleTrimCache(): Promise<void> {
return withProgress(
async (_progress, token) => {
async () => {
if (
this.queryServer !== undefined &&
this.databaseManager.currentDatabaseItem !== undefined
) {
await this.queryServer.trimCacheInDatabase(
this.databaseManager.currentDatabaseItem,
token,
);
}
},
@@ -696,13 +689,9 @@ export class DatabaseUI extends DisposableObject {
try {
// Assume user has selected an archive if the file has a .zip extension
if (uri.path.endsWith(".zip")) {
await importArchiveDatabase(
this.app.commands,
await this.databaseFetcher.importLocalDatabase(
uri.toString(true),
this.databaseManager,
this.storagePath,
progress,
this.queryServer.cliServer,
);
} else {
await this.databaseManager.openDatabase(uri, {
@@ -724,6 +713,56 @@ export class DatabaseUI extends DisposableObject {
);
}
private async handleImportTestDatabase(uri: Uri): Promise<void> {
return withProgress(
async (progress) => {
try {
if (!uri.path.endsWith(".testproj")) {
throw new Error(
"Please select a valid test database to import. Test databases end with `.testproj`.",
);
}
// Check if the database is already in the workspace. If
// so, delete it first before importing the new one.
const existingItem = this.databaseManager.findTestDatabase(uri);
const baseName = basename(uri.fsPath);
if (existingItem !== undefined) {
progress({
maxStep: 9,
step: 1,
message: `Removing existing test database ${baseName}`,
});
await this.databaseManager.removeDatabaseItem(existingItem);
}
await this.databaseFetcher.importLocalDatabase(
uri.toString(true),
progress,
);
if (existingItem !== undefined) {
progress({
maxStep: 9,
step: 9,
message: `Successfully re-imported ${baseName}`,
});
}
} catch (e) {
// rethrow and let this be handled by default error handling.
throw new Error(
`Could not set database to ${basename(
uri.fsPath,
)}. Reason: ${getErrorMessage(e)}`,
);
}
},
{
title: "(Re-)importing test database from directory",
},
);
}
private async handleRemoveDatabase(
databaseItems: DatabaseItem[],
): Promise<void> {
@@ -779,9 +818,8 @@ export class DatabaseUI extends DisposableObject {
*/
public async getDatabaseItem(
progress: ProgressCallback,
token: CancellationToken,
): Promise<DatabaseItem | undefined> {
return await this.getDatabaseItemInternal({ progress, token });
return await this.getDatabaseItemInternal(progress);
}
/**
@@ -794,13 +832,128 @@ export class DatabaseUI extends DisposableObject {
* notification if it tries to perform any long-running operations.
*/
private async getDatabaseItemInternal(
progress: ProgressContext | undefined,
progress: ProgressCallback | undefined,
): Promise<DatabaseItem | undefined> {
if (this.databaseManager.currentDatabaseItem === undefined) {
await this.chooseAndSetDatabase(false, progress);
progress?.({
maxStep: 2,
step: 1,
message: "Choosing database",
});
await this.promptForDatabase();
}
return this.databaseManager.currentDatabaseItem;
}
private async promptForDatabase(): Promise<void> {
// If there aren't any existing databases,
// don't bother asking the user if they want to pick one.
if (this.databaseManager.databaseItems.length === 0) {
return this.importNewDatabase();
}
return this.databaseManager.currentDatabaseItem;
const quickPickItems: DatabaseSelectionQuickPickItem[] = [
{
label: "$(database) Existing database",
detail: "Select an existing database from your workspace",
alwaysShow: true,
databaseKind: "existing",
},
{
label: "$(arrow-down) New database",
detail:
"Import a new database from GitHub, a URL, or your local machine...",
alwaysShow: true,
databaseKind: "new",
},
];
const selectedOption =
await window.showQuickPick<DatabaseSelectionQuickPickItem>(
quickPickItems,
{
placeHolder: "Select an option",
ignoreFocusOut: true,
},
);
if (!selectedOption) {
throw new UserCancellationException("No database selected", true);
}
if (selectedOption.databaseKind === "existing") {
await this.selectExistingDatabase();
} else if (selectedOption.databaseKind === "new") {
await this.importNewDatabase();
}
}
private async selectExistingDatabase() {
const dbItems: DatabaseQuickPickItem[] =
this.databaseManager.databaseItems.map((dbItem) => ({
label: dbItem.name,
description: getLanguageDisplayName(dbItem.language),
databaseItem: dbItem,
}));
const selectedDatabase = await window.showQuickPick(dbItems, {
placeHolder: "Select an existing database from your workspace...",
ignoreFocusOut: true,
});
if (!selectedDatabase) {
throw new UserCancellationException("No database selected", true);
}
await this.databaseManager.setCurrentDatabaseItem(
selectedDatabase.databaseItem,
);
}
private async importNewDatabase() {
const importOptions: DatabaseImportQuickPickItems[] = [
{
label: "$(github) GitHub",
detail: "Import a database from a GitHub repository",
alwaysShow: true,
importType: "github",
},
{
label: "$(link) URL",
detail: "Import a database archive or folder from a remote URL",
alwaysShow: true,
importType: "URL",
},
{
label: "$(file-zip) Archive",
detail: "Import a database from a local ZIP archive",
alwaysShow: true,
importType: "archive",
},
{
label: "$(folder) Folder",
detail: "Import a database from a local folder",
alwaysShow: true,
importType: "folder",
},
];
const selectedImportOption =
await window.showQuickPick<DatabaseImportQuickPickItems>(importOptions, {
placeHolder:
"Import a new database from GitHub, a URL, or your local machine...",
ignoreFocusOut: true,
});
if (!selectedImportOption) {
throw new UserCancellationException("No database selected", true);
}
if (selectedImportOption.importType === "github") {
await this.handleChooseDatabaseGithub();
} else if (selectedImportOption.importType === "URL") {
await this.handleChooseDatabaseInternet();
} else if (selectedImportOption.importType === "archive") {
await this.handleChooseDatabaseArchive();
} else if (selectedImportOption.importType === "folder") {
await this.handleChooseDatabaseFolder();
}
}
/**
@@ -809,41 +962,28 @@ export class DatabaseUI extends DisposableObject {
*/
private async chooseAndSetDatabase(
byFolder: boolean,
progress: ProgressContext | undefined,
progress: ProgressCallback,
): Promise<DatabaseItem | undefined> {
const uri = await chooseDatabaseDir(byFolder);
if (!uri) {
return undefined;
}
return await withInheritedProgress(
progress,
async (progress) => {
if (byFolder) {
const fixedUri = await this.fixDbUri(uri);
// we are selecting a database folder
return await this.databaseManager.openDatabase(fixedUri, {
type: "folder",
});
} else {
// we are selecting a database archive. Must unzip into a workspace-controlled area
// before importing.
return await importArchiveDatabase(
this.app.commands,
uri.toString(true),
this.databaseManager,
this.storagePath,
progress,
this.queryServer.cliServer,
);
}
},
{
location: ProgressLocation.Notification,
cancellable: true,
title: "Opening database",
},
);
if (byFolder && !uri.fsPath.endsWith("testproj")) {
const fixedUri = await this.fixDbUri(uri);
// we are selecting a database folder
return await this.databaseManager.openDatabase(fixedUri, {
type: "folder",
});
} else {
// we are selecting a database archive or a testproj.
// Unzip archives (if an archive) and copy into a workspace-controlled area
// before importing.
return await this.databaseFetcher.importLocalDatabase(
uri.toString(true),
progress,
);
}
}
/**

View File

@@ -1,4 +1,7 @@
import { pathExists, remove } from "fs-extra";
import { join } from "path";
import type { Uri } from "vscode";
import { zip } from "zip-a-folder";
/**
* The layout of the database.
@@ -28,3 +31,26 @@ export interface DatabaseContents {
export interface DatabaseContentsWithDbScheme extends DatabaseContents {
dbSchemeUri: Uri; // Always present
}
/**
* Databases created by the old odasa tool will not have a zipped
* source location. However, this extension works better if sources
* are zipped.
*
* This function ensures that the source location is zipped. If the
* `src` folder exists and the `src.zip` file does not, the `src`
* folder will be zipped and then deleted.
*
* @param databasePath The full path to the unzipped database
*/
export async function ensureZippedSourceLocation(
databasePath: string,
): Promise<void> {
const srcFolderPath = join(databasePath, "src");
const srcZipPath = `${srcFolderPath}.zip`;
if ((await pathExists(srcFolderPath)) && !(await pathExists(srcZipPath))) {
await zip(srcFolderPath, srcZipPath);
await remove(srcFolderPath);
}
}

View File

@@ -16,4 +16,8 @@ export enum DatabaseEventKind {
export interface DatabaseChangedEvent {
kind: DatabaseEventKind;
item: DatabaseItem | undefined;
// If true, event handlers should consider the database manager
// to have been fully refreshed. Any state managed by the
// event handler should be fully refreshed as well.
fullRefresh: boolean;
}

View File

@@ -66,6 +66,10 @@ export class DatabaseItemImpl implements DatabaseItem {
return this.options.origin;
}
public get extensionManagedLocation(): string | undefined {
return this.options.extensionManagedLocation;
}
public resolveSourceFile(uriStr: string | undefined): Uri {
const sourceArchive = this.sourceArchive;
const uri = uriStr ? Uri.parse(uriStr, true) : undefined;

View File

@@ -31,6 +31,12 @@ export interface DatabaseItem {
*/
readonly origin: DatabaseOrigin | undefined;
/**
* The location of the base storage location as managed by the extension, or undefined
* if unknown or not managed by the extension.
*/
readonly extensionManagedLocation: string | undefined;
/** If the database is invalid, describes why. */
readonly error: Error | undefined;

View File

@@ -18,7 +18,10 @@ import {
import { join } from "path";
import type { FullDatabaseOptions } from "./database-options";
import { DatabaseItemImpl } from "./database-item-impl";
import { showNeverAskAgainDialog } from "../../common/vscode/dialog";
import {
showBinaryChoiceDialog,
showNeverAskAgainDialog,
} from "../../common/vscode/dialog";
import {
getFirstWorkspaceFolder,
isFolderAlreadyInWorkspace,
@@ -32,7 +35,7 @@ import { QlPackGenerator } from "../../local-queries/qlpack-generator";
import { asError, getErrorMessage } from "../../common/helpers-pure";
import type { DatabaseItem, PersistedDatabaseItem } from "./database-item";
import { redactableError } from "../../common/errors";
import { remove } from "fs-extra";
import { copy, remove, stat } from "fs-extra";
import { containsPath } from "../../common/files";
import type { DatabaseChangedEvent } from "./database-events";
import { DatabaseEventKind } from "./database-events";
@@ -40,6 +43,7 @@ import { DatabaseResolver } from "./database-resolver";
import { telemetryListener } from "../../common/vscode/telemetry";
import type { LanguageContextStore } from "../../language-context-store";
import type { DatabaseOrigin } from "./database-origin";
import { ensureZippedSourceLocation } from "./database-contents";
/**
* The name of the key in the workspaceState dictionary in which we
@@ -82,6 +86,10 @@ function eventFired<T>(
}
type OpenDatabaseOptions = {
/**
* A location that is managed by the extension.
*/
extensionManagedLocation?: string;
isTutorialDatabase?: boolean;
/**
* Whether to add a workspace folder containing the source archive to the workspace. Default is true.
@@ -116,6 +124,7 @@ export class DatabaseManager extends DisposableObject {
super();
qs.onStart(this.reregisterDatabases.bind(this));
qs.onQueryRunStarting(this.maybeReimportTestDatabase.bind(this));
this.push(
this.languageContext.onLanguageContextChanged(async () => {
@@ -141,6 +150,7 @@ export class DatabaseManager extends DisposableObject {
makeSelected = true,
displayName?: string,
{
extensionManagedLocation,
isTutorialDatabase = false,
addSourceArchiveFolder = addDatabaseSourceToWorkspace(),
}: OpenDatabaseOptions = {},
@@ -149,6 +159,7 @@ export class DatabaseManager extends DisposableObject {
uri,
origin,
displayName,
extensionManagedLocation,
);
return await this.addExistingDatabaseItem(
@@ -159,6 +170,108 @@ export class DatabaseManager extends DisposableObject {
);
}
/**
* Finds a test database that was originally imported from `uri`.
* A test database is creeated by the `codeql test run` command
* and ends with `.testproj`.
* @param uri The original location of the database
* @returns The first database item found that matches the uri
*/
public findTestDatabase(uri: vscode.Uri): DatabaseItem | undefined {
const originPath = uri.fsPath;
for (const item of this._databaseItems) {
if (item.origin?.type === "testproj" && item.origin.path === originPath) {
return item;
}
}
return undefined;
}
public async maybeReimportTestDatabase(
databaseUri: vscode.Uri,
forceImport = false,
): Promise<void> {
const res = await this.isTestDatabaseOutdated(databaseUri);
if (!res) {
return;
}
const doit =
forceImport ||
(await showBinaryChoiceDialog(
"This test database is outdated. Do you want to reimport it?",
));
if (doit) {
await this.reimportTestDatabase(databaseUri);
}
}
/**
* Checks if the origin of the imported database is newer.
* The imported database must be a test database.
* @param databaseUri the URI of the imported database to check
* @returns true if both databases exist and the origin database is newer.
*/
private async isTestDatabaseOutdated(
databaseUri: vscode.Uri,
): Promise<boolean> {
const dbItem = this.findDatabaseItem(databaseUri);
if (dbItem === undefined || dbItem.origin?.type !== "testproj") {
return false;
}
// Compare timestmps of the codeql-database.yml files of the original and the
// imported databases.
const originDbYml = join(dbItem.origin.path, "codeql-database.yml");
const importedDbYml = join(
dbItem.databaseUri.fsPath,
"codeql-database.yml",
);
let originStat;
try {
originStat = await stat(originDbYml);
} catch (e) {
// if there is an error here, assume that the origin database
// is no longer available. Safely ignore and do not try to re-import.
return false;
}
try {
const importedStat = await stat(importedDbYml);
return originStat.mtimeMs > importedStat.mtimeMs;
} catch (e) {
// If either of the files does not exist, we assume the origin is newer.
// This shouldn't happen unless the user manually deleted one of the files.
return true;
}
}
/**
* Reimport the specified imported database from its origin.
* The imported databsae must be a testproj database.
*
* @param databaseUri the URI of the imported database to reimport
*/
private async reimportTestDatabase(databaseUri: vscode.Uri): Promise<void> {
const dbItem = this.findDatabaseItem(databaseUri);
if (dbItem === undefined || dbItem.origin?.type !== "testproj") {
throw new Error(`Database ${databaseUri} is not a testproj.`);
}
await this.removeDatabaseItem(dbItem);
await copy(dbItem.origin.path, databaseUri.fsPath);
await ensureZippedSourceLocation(databaseUri.fsPath);
const newDbItem = new DatabaseItemImpl(databaseUri, dbItem.contents, {
dateAdded: Date.now(),
language: dbItem.language,
origin: dbItem.origin,
extensionManagedLocation: dbItem.extensionManagedLocation,
});
await this.addDatabaseItem(newDbItem);
await this.setCurrentDatabaseItem(newDbItem);
}
/**
* Adds a {@link DatabaseItem} to the list of open databases, if that database is not already on
* the list.
@@ -202,6 +315,7 @@ export class DatabaseManager extends DisposableObject {
uri: vscode.Uri,
origin: DatabaseOrigin | undefined,
displayName: string | undefined,
extensionManagedLocation?: string,
): Promise<DatabaseItemImpl> {
const contents = await DatabaseResolver.resolveDatabaseContents(uri);
const fullOptions: FullDatabaseOptions = {
@@ -210,6 +324,7 @@ export class DatabaseManager extends DisposableObject {
dateAdded: Date.now(),
language: await this.getPrimaryLanguage(uri.fsPath),
origin,
extensionManagedLocation,
};
const databaseItem = new DatabaseItemImpl(uri, contents, fullOptions);
@@ -370,6 +485,7 @@ export class DatabaseManager extends DisposableObject {
let dateAdded = undefined;
let language = undefined;
let origin = undefined;
let extensionManagedLocation = undefined;
if (state.options) {
if (typeof state.options.displayName === "string") {
displayName = state.options.displayName;
@@ -379,6 +495,7 @@ export class DatabaseManager extends DisposableObject {
}
language = state.options.language;
origin = state.options.origin;
extensionManagedLocation = state.options.extensionManagedLocation;
}
const dbBaseUri = vscode.Uri.parse(state.uri, true);
@@ -392,6 +509,7 @@ export class DatabaseManager extends DisposableObject {
dateAdded,
language,
origin,
extensionManagedLocation,
};
const item = new DatabaseItemImpl(dbBaseUri, undefined, fullOptions);
@@ -495,6 +613,7 @@ export class DatabaseManager extends DisposableObject {
this._onDidChangeCurrentDatabaseItem.fire({
item,
kind: DatabaseEventKind.Change,
fullRefresh: false,
});
}
}
@@ -544,8 +663,9 @@ export class DatabaseManager extends DisposableObject {
}
// note that we use undefined as the item in order to reset the entire tree
this._onDidChangeDatabaseItem.fire({
item: undefined,
item,
kind: DatabaseEventKind.Add,
fullRefresh: true,
});
}
@@ -553,9 +673,9 @@ export class DatabaseManager extends DisposableObject {
item.name = newName;
await this.updatePersistedDatabaseList();
this._onDidChangeDatabaseItem.fire({
// pass undefined so that the entire tree is rebuilt in order to re-sort
item: undefined,
item,
kind: DatabaseEventKind.Rename,
fullRefresh: true,
});
}
@@ -583,24 +703,29 @@ export class DatabaseManager extends DisposableObject {
// Remove this database item from the allow-list
await this.deregisterDatabase(item);
// Find whether we know directly which directory we should remove
const directoryToRemove = item.extensionManagedLocation
? vscode.Uri.file(item.extensionManagedLocation)
: item.databaseUri;
// Delete folder from file system only if it is controlled by the extension
if (this.isExtensionControlledLocation(item.databaseUri)) {
if (this.isExtensionControlledLocation(directoryToRemove)) {
void extLogger.log("Deleting database from filesystem.");
await remove(item.databaseUri.fsPath).then(
() => void extLogger.log(`Deleted '${item.databaseUri.fsPath}'`),
await remove(directoryToRemove.fsPath).then(
() => void extLogger.log(`Deleted '${directoryToRemove.fsPath}'`),
(e: unknown) =>
void extLogger.log(
`Failed to delete '${
item.databaseUri.fsPath
directoryToRemove.fsPath
}'. Reason: ${getErrorMessage(e)}`,
),
);
}
// note that we use undefined as the item in order to reset the entire tree
this._onDidChangeDatabaseItem.fire({
item: undefined,
item,
kind: DatabaseEventKind.Remove,
fullRefresh: true,
});
}
@@ -653,6 +778,7 @@ export class DatabaseManager extends DisposableObject {
this._onDidChangeDatabaseItem.fire({
kind: DatabaseEventKind.Refresh,
item: databaseItem,
fullRefresh: false,
});
}
}

View File

@@ -5,10 +5,12 @@ export interface DatabaseOptions {
dateAdded?: number | undefined;
language?: string;
origin?: DatabaseOrigin;
extensionManagedLocation?: string;
}
export interface FullDatabaseOptions extends DatabaseOptions {
dateAdded: number | undefined;
language: string | undefined;
origin: DatabaseOrigin | undefined;
extensionManagedLocation: string | undefined;
}

Some files were not shown because too many files have changed in this diff Show More