Compare commits

...

49 Commits

Author SHA1 Message Date
Michael Hohn
495b52661e add viewer configuration
Some checks failed
Run CLI tests / Find Nightly Release (push) Has been cancelled
Run CLI tests / Set Matrix for cli-test (push) Has been cancelled
Run CLI tests / CLI Test (push) Has been cancelled
Run CLI tests / Report failure on the default branch (push) Has been cancelled
Update Node version / Create PR (push) Has been cancelled
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
Bump CLI version / Build (push) Has been cancelled
Code Scanning - CodeQL / codeql (push) Has been cancelled
2025-08-19 11:24:15 -07:00
Michael Hohn
9a6aa52a40 fix: reconciled status names between server/agent/vscode-codeql
Some checks failed
Update Node version / Create PR (push) Has been cancelled
Run CLI tests / Find Nightly Release (push) Has been cancelled
Run CLI tests / Set Matrix for cli-test (push) Has been cancelled
Run CLI tests / CLI Test (push) Has been cancelled
Run CLI tests / Report failure on the default branch (push) Has been cancelled
Code Scanning - CodeQL / codeql (push) Has been cancelled
Bump CLI version / Build (push) Has been cancelled
2025-03-14 12:45:36 -07:00
Michael Hohn
c106903f01 wip: update settings, push new images 2025-02-20 10:30:22 -08:00
Nicolas Will
d40cda150c WIP: standalone MRVA 2024-07-01 18:20:23 +02: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
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
27 changed files with 754 additions and 772 deletions

View File

@@ -5,8 +5,4 @@
Replace this with a description of the changes your pull request makes. Replace this with a description of the changes your pull request makes.
## Checklist 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!
- [ ] [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.

View File

@@ -144,6 +144,19 @@ jobs:
matrix: matrix:
os: [ubuntu-latest, windows-latest] os: [ubuntu-latest, windows-latest]
steps: 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 - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:

View File

@@ -111,4 +111,10 @@
"editor.defaultFormatter": "esbenp.prettier-vscode", "editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true, "editor.formatOnSave": true,
}, },
"github.copilot.advanced": {
},
"codeQL.variantAnalysis.enableGhecDr": true,
"github-enterprise.uri": "http://server:8080/"
} }

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). - [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. - 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). - 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 ## Setting up a local build

View File

@@ -179,7 +179,7 @@ Run one of the above MRVAs, but cancel it from within VS Code:
import semmle.python.frameworks.data.internal.ApiGraphModelsExtensions import semmle.python.frameworks.data.internal.ApiGraphModelsExtensions
from string path, string kind from string path, string kind
where sinkModel("vscode-codeql", path, kind) where sinkModel("vscode-codeql", path, kind, _)
select path, kind select path, kind
``` ```
@@ -210,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. 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. - Check that the file contains entries for the methods that were modeled.
#### Test Case 3: Model with AI #### Test Case 3: Model as dependency
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
Note that this test requires the feature flag: `codeQL.model.flowGeneration` Note that this test requires the feature flag: `codeQL.model.flowGeneration`

View File

@@ -1 +1 @@
v18.18.2 v20.9.0

View File

@@ -1,5 +1,7 @@
# CodeQL for Visual Studio Code: Changelog # CodeQL for Visual Studio Code: Changelog
## [UNRELEASED]
## 1.13.1 - 29 May 2024 ## 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) - Fix a bug when re-importing test databases that erroneously showed old source code. [#3616](https://github.com/github/vscode-codeql/pull/3616)

View File

@@ -111,9 +111,9 @@ If you wish to navigate the query results from your keyboard, you can bind short
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: 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/). - [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/). - [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 ## License

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
"description": "CodeQL for Visual Studio Code", "description": "CodeQL for Visual Studio Code",
"author": "GitHub", "author": "GitHub",
"private": true, "private": true,
"version": "1.13.1", "version": "1.13.2",
"publisher": "GitHub", "publisher": "GitHub",
"license": "MIT", "license": "MIT",
"icon": "media/VS-marketplace-CodeQL-icon.png", "icon": "media/VS-marketplace-CodeQL-icon.png",
@@ -14,7 +14,7 @@
}, },
"engines": { "engines": {
"vscode": "^1.82.0", "vscode": "^1.82.0",
"node": "^18.18.2", "node": "^20.9.0",
"npm": ">=7.20.6" "npm": ">=7.20.6"
}, },
"categories": [ "categories": [
@@ -339,13 +339,6 @@
"title": "Variant analysis", "title": "Variant analysis",
"order": 5, "order": 5,
"properties": { "properties": {
"codeQL.variantAnalysis.controllerRepo": {
"type": "string",
"default": "",
"pattern": "^$|^(?:[a-zA-Z0-9]+-)*[a-zA-Z0-9]+/[a-zA-Z0-9-_]+$",
"patternErrorMessage": "Please enter a valid GitHub repository",
"markdownDescription": "[For internal use only] The name of the GitHub repository in which the GitHub Actions workflow is run when using the \"Run Variant Analysis\" command. The repository should be of the form `<owner>/<repo>`)."
},
"codeQL.variantAnalysis.defaultResultsFilter": { "codeQL.variantAnalysis.defaultResultsFilter": {
"type": "string", "type": "string",
"default": "all", "default": "all",
@@ -1931,11 +1924,6 @@
{ {
"view": "codeQLEvalLogViewer", "view": "codeQLEvalLogViewer",
"contents": "Run the 'Show Evaluator Log (UI)' command on a CodeQL query run in the Query History view." "contents": "Run the 'Show Evaluator Log (UI)' command on a CodeQL query run in the Query History view."
},
{
"view": "codeQLVariantAnalysisRepositories",
"contents": "Set up a controller repository to start using variant analysis. [Learn more](https://codeql.github.com/docs/codeql-for-visual-studio-code/running-codeql-queries-at-scale-with-mrva#controller-repository) about controller repositories. \n[Set up controller repository](command:codeQLVariantAnalysisRepositories.setupControllerRepository)",
"when": "!config.codeQL.variantAnalysis.controllerRepo"
} }
] ]
}, },
@@ -2004,7 +1992,7 @@
"zip-a-folder": "^3.1.6" "zip-a-folder": "^3.1.6"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.24.4", "@babel/core": "^7.24.6",
"@babel/plugin-transform-modules-commonjs": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6",
"@babel/preset-env": "^7.24.4", "@babel/preset-env": "^7.24.4",
"@babel/preset-react": "^7.24.1", "@babel/preset-react": "^7.24.1",
@@ -2012,22 +2000,22 @@
"@faker-js/faker": "^8.4.1", "@faker-js/faker": "^8.4.1",
"@github/markdownlint-github": "^0.6.2", "@github/markdownlint-github": "^0.6.2",
"@playwright/test": "^1.40.1", "@playwright/test": "^1.40.1",
"@storybook/addon-a11y": "^8.1.3", "@storybook/addon-a11y": "^8.1.10",
"@storybook/addon-actions": "^8.1.3", "@storybook/addon-actions": "^8.1.10",
"@storybook/addon-essentials": "^8.1.3", "@storybook/addon-essentials": "^8.1.10",
"@storybook/addon-interactions": "^8.1.3", "@storybook/addon-interactions": "^8.1.10",
"@storybook/addon-links": "^8.1.3", "@storybook/addon-links": "^8.1.10",
"@storybook/blocks": "^8.0.2", "@storybook/blocks": "^8.0.2",
"@storybook/components": "^8.0.2", "@storybook/components": "^8.0.2",
"@storybook/csf": "^0.1.7", "@storybook/csf": "^0.1.8",
"@storybook/icons": "^1.2.9", "@storybook/icons": "^1.2.9",
"@storybook/manager-api": "^8.1.3", "@storybook/manager-api": "^8.1.10",
"@storybook/react": "^8.1.3", "@storybook/react": "^8.1.10",
"@storybook/react-vite": "^8.1.3", "@storybook/react-vite": "^8.1.10",
"@storybook/theming": "^8.1.3", "@storybook/theming": "^8.1.10",
"@testing-library/dom": "^10.1.0", "@testing-library/dom": "^10.1.0",
"@testing-library/jest-dom": "^6.4.5", "@testing-library/jest-dom": "^6.4.6",
"@testing-library/react": "^15.0.7", "@testing-library/react": "^16.0.0",
"@testing-library/user-event": "^14.5.2", "@testing-library/user-event": "^14.5.2",
"@types/child-process-promise": "^2.2.1", "@types/child-process-promise": "^2.2.1",
"@types/d3": "^7.4.0", "@types/d3": "^7.4.0",
@@ -2039,7 +2027,7 @@
"@types/jest": "^29.5.12", "@types/jest": "^29.5.12",
"@types/js-yaml": "^4.0.6", "@types/js-yaml": "^4.0.6",
"@types/nanoid": "^3.0.0", "@types/nanoid": "^3.0.0",
"@types/node": "18.18.*", "@types/node": "20.9.*",
"@types/node-fetch": "^2.5.2", "@types/node-fetch": "^2.5.2",
"@types/react": "^18.3.1", "@types/react": "^18.3.1",
"@types/react-dom": "^18.3.0", "@types/react-dom": "^18.3.0",
@@ -2078,7 +2066,7 @@
"gulp-esbuild": "^0.12.0", "gulp-esbuild": "^0.12.0",
"gulp-replace": "^1.1.3", "gulp-replace": "^1.1.3",
"gulp-typescript": "^5.0.1", "gulp-typescript": "^5.0.1",
"husky": "^9.0.11", "husky": "^9.1.7",
"jest": "^29.0.3", "jest": "^29.0.3",
"jest-environment-jsdom": "^29.0.3", "jest-environment-jsdom": "^29.0.3",
"jest-runner-vscode": "^3.0.1", "jest-runner-vscode": "^3.0.1",
@@ -2088,13 +2076,13 @@
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"patch-package": "^8.0.0", "patch-package": "^8.0.0",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"storybook": "^8.1.3", "storybook": "^8.1.10",
"tar-stream": "^3.1.7", "tar-stream": "^3.1.7",
"through2": "^4.0.2", "through2": "^4.0.2",
"ts-jest": "^29.1.2", "ts-jest": "^29.1.4",
"ts-json-schema-generator": "^2.1.1", "ts-json-schema-generator": "^2.1.1",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"ts-unused-exports": "^10.0.0", "ts-unused-exports": "^10.1.0",
"typescript": "^5.0.2", "typescript": "^5.0.2",
"vite": "^5.2.11", "vite": "^5.2.11",
"vite-node": "^1.5.3" "vite-node": "^1.5.3"

View File

@@ -290,7 +290,6 @@ export type DatabasePanelCommands = {
"codeQLVariantAnalysisRepositories.openConfigFile": () => Promise<void>; "codeQLVariantAnalysisRepositories.openConfigFile": () => Promise<void>;
"codeQLVariantAnalysisRepositories.addNewDatabase": () => Promise<void>; "codeQLVariantAnalysisRepositories.addNewDatabase": () => Promise<void>;
"codeQLVariantAnalysisRepositories.addNewList": () => Promise<void>; "codeQLVariantAnalysisRepositories.addNewList": () => Promise<void>;
"codeQLVariantAnalysisRepositories.setupControllerRepository": () => Promise<void>;
"codeQLVariantAnalysisRepositories.setSelectedItem": TreeViewContextSingleSelectionCommandFunction<DbTreeViewItem>; "codeQLVariantAnalysisRepositories.setSelectedItem": TreeViewContextSingleSelectionCommandFunction<DbTreeViewItem>;
"codeQLVariantAnalysisRepositories.setSelectedItemContextMenu": TreeViewContextSingleSelectionCommandFunction<DbTreeViewItem>; "codeQLVariantAnalysisRepositories.setSelectedItemContextMenu": TreeViewContextSingleSelectionCommandFunction<DbTreeViewItem>;

View File

@@ -112,7 +112,9 @@ export function hasEnterpriseUri(): boolean {
* Does the uri look like GHEC-DR? * Does the uri look like GHEC-DR?
*/ */
function isGhecDrUri(uri: Uri | undefined): boolean { function isGhecDrUri(uri: Uri | undefined): boolean {
return uri !== undefined && uri.authority.toLowerCase().endsWith(".ghe.com"); return (
uri !== undefined && !uri.authority.toLowerCase().endsWith("github.com")
);
} }
/** /**
@@ -591,27 +593,7 @@ export const NO_CACHE_CONTEXTUAL_QUERIES = new Setting(
// Settings for variant analysis // Settings for variant analysis
const VARIANT_ANALYSIS_SETTING = new Setting("variantAnalysis", ROOT_SETTING); const VARIANT_ANALYSIS_SETTING = new Setting("variantAnalysis", ROOT_SETTING);
/**
* The name of the "controller" repository that you want to use with the "Run Variant Analysis" command.
* Note: This command is only available for internal users.
*
* This setting should be a GitHub repository of the form `<owner>/<repo>`.
*/
const REMOTE_CONTROLLER_REPO = new Setting(
"controllerRepo",
VARIANT_ANALYSIS_SETTING,
);
export function getRemoteControllerRepo(): string | undefined {
return REMOTE_CONTROLLER_REPO.getValue<string>() || undefined;
}
export async function setRemoteControllerRepo(repo: string | undefined) {
await REMOTE_CONTROLLER_REPO.updateValue(repo, ConfigurationTarget.Global);
}
export interface VariantAnalysisConfig { export interface VariantAnalysisConfig {
controllerRepo: string | undefined;
showSystemDefinedRepositoryLists: boolean; showSystemDefinedRepositoryLists: boolean;
/** /**
* This uses a URL instead of a URI because the URL class is available in * This uses a URL instead of a URI because the URL class is available in
@@ -632,10 +614,6 @@ export class VariantAnalysisConfigListener
); );
} }
public get controllerRepo(): string | undefined {
return getRemoteControllerRepo();
}
public get showSystemDefinedRepositoryLists(): boolean { public get showSystemDefinedRepositoryLists(): boolean {
return !hasEnterpriseUri(); return !hasEnterpriseUri();
} }

View File

@@ -18,8 +18,6 @@ import type { DbManager } from "../db-manager";
import { DbTreeDataProvider } from "./db-tree-data-provider"; import { DbTreeDataProvider } from "./db-tree-data-provider";
import type { DbTreeViewItem } from "./db-tree-view-item"; import type { DbTreeViewItem } from "./db-tree-view-item";
import { getGitHubUrl } from "./db-tree-view-item-action"; import { getGitHubUrl } from "./db-tree-view-item-action";
import { getControllerRepo } from "../../variant-analysis/run-remote-query";
import { getErrorMessage } from "../../common/helpers-pure";
import type { DatabasePanelCommands } from "../../common/commands"; import type { DatabasePanelCommands } from "../../common/commands";
import type { App } from "../../common/app"; import type { App } from "../../common/app";
import { QueryLanguage } from "../../common/query-language"; import { QueryLanguage } from "../../common/query-language";
@@ -74,9 +72,6 @@ export class DbPanel extends DisposableObject {
this.addNewRemoteDatabase.bind(this), this.addNewRemoteDatabase.bind(this),
"codeQLVariantAnalysisRepositories.addNewList": "codeQLVariantAnalysisRepositories.addNewList":
this.addNewList.bind(this), this.addNewList.bind(this),
"codeQLVariantAnalysisRepositories.setupControllerRepository":
this.setupControllerRepository.bind(this),
"codeQLVariantAnalysisRepositories.setSelectedItem": "codeQLVariantAnalysisRepositories.setSelectedItem":
this.setSelectedItem.bind(this), this.setSelectedItem.bind(this),
"codeQLVariantAnalysisRepositories.setSelectedItemContextMenu": "codeQLVariantAnalysisRepositories.setSelectedItemContextMenu":
@@ -427,22 +422,4 @@ export class DbPanel extends DisposableObject {
await this.app.commands.execute("vscode.open", Uri.parse(githubUrl)); await this.app.commands.execute("vscode.open", Uri.parse(githubUrl));
} }
private async setupControllerRepository(): Promise<void> {
try {
// This will also validate that the controller repository is valid
await getControllerRepo(this.app.credentials);
} catch (e: unknown) {
if (e instanceof UserCancellationException) {
return;
}
void showAndLogErrorMessage(
this.app.logger,
`An error occurred while setting up the controller repository: ${getErrorMessage(
e,
)}`,
);
}
}
} }

View File

@@ -83,11 +83,6 @@ export class DbTreeDataProvider
} }
private createTree(): DbTreeViewItem[] { private createTree(): DbTreeViewItem[] {
// Returning an empty tree here will show the welcome view
if (!this.variantAnalysisConfig.controllerRepo) {
return [];
}
const dbItemsResult = this.dbManager.getDbItems(); const dbItemsResult = this.dbManager.getDbItems();
if (dbItemsResult.isFailure) { if (dbItemsResult.isFailure) {

View File

@@ -717,12 +717,13 @@ async function installOrUpdateThenTryActivate(
return undefined; return undefined;
} }
const PACK_GLOBS = [ const CLEAR_PACK_CACHE_ON_EDIT_GLOBS = [
"**/codeql-pack.yml", "**/codeql-pack.yml",
"**/qlpack.yml", "**/qlpack.yml",
"**/queries.xml", "**/queries.xml",
"**/codeql-pack.lock.yml", "**/codeql-pack.lock.yml",
"**/qlpack.lock.yml", "**/qlpack.lock.yml",
"**/*.dbscheme",
".codeqlmanifest.json", ".codeqlmanifest.json",
"codeql-workspace.yml", "codeql-workspace.yml",
]; ];
@@ -769,7 +770,7 @@ async function activateWithInstalledDistribution(
ctx, ctx,
); );
for (const glob of PACK_GLOBS) { for (const glob of CLEAR_PACK_CACHE_ON_EDIT_GLOBS) {
const fsWatcher = workspace.createFileSystemWatcher(glob); const fsWatcher = workspace.createFileSystemWatcher(glob);
ctx.subscriptions.push(fsWatcher); ctx.subscriptions.push(fsWatcher);

View File

@@ -48,11 +48,6 @@ function mapVariantAnalysisDtoToDto(
): VariantAnalysisDto { ): VariantAnalysisDto {
return { return {
id: variantAnalysis.id, id: variantAnalysis.id,
controllerRepo: {
id: variantAnalysis.controllerRepo.id,
fullName: variantAnalysis.controllerRepo.fullName,
private: variantAnalysis.controllerRepo.private,
},
query: { query: {
name: variantAnalysis.query.name, name: variantAnalysis.query.name,
filePath: variantAnalysis.query.filePath, filePath: variantAnalysis.query.filePath,

View File

@@ -48,12 +48,12 @@ function mapVariantAnalysisToDomainModel(
): VariantAnalysis { ): VariantAnalysis {
return { return {
id: variantAnalysis.id, id: variantAnalysis.id,
controllerRepo: {
id: variantAnalysis.controllerRepo.id,
fullName: variantAnalysis.controllerRepo.fullName,
private: variantAnalysis.controllerRepo.private,
},
language: mapQueryLanguageToDomainModel(variantAnalysis.query.language), language: mapQueryLanguageToDomainModel(variantAnalysis.query.language),
controllerRepo: {
id: 0,
fullName: "",
private: false,
},
query: { query: {
name: variantAnalysis.query.name, name: variantAnalysis.query.name,
filePath: variantAnalysis.query.filePath, filePath: variantAnalysis.query.filePath,

View File

@@ -15,11 +15,6 @@ export interface QueryHistoryVariantAnalysisDto {
export interface VariantAnalysisDto { export interface VariantAnalysisDto {
id: number; id: number;
controllerRepo: {
id: number;
fullName: string;
private: boolean;
};
query: { query: {
name: string; name: string;
filePath: string; filePath: string;

View File

@@ -160,7 +160,7 @@ async function exportVariantAnalysisAnalysisResults(
expectedAnalysesResultsCount: number, expectedAnalysesResultsCount: number,
exportFormat: "gist" | "local", exportFormat: "gist" | "local",
commandManager: AppCommandManager, commandManager: AppCommandManager,
credentials: Credentials, _credentials: Credentials,
progress: ProgressCallback, progress: ProgressCallback,
token: CancellationToken, token: CancellationToken,
) { ) {
@@ -191,7 +191,6 @@ async function exportVariantAnalysisAnalysisResults(
markdownFiles, markdownFiles,
exportFormat, exportFormat,
commandManager, commandManager,
credentials,
progress, progress,
token, token,
); );
@@ -236,7 +235,6 @@ async function exportResults(
markdownFiles: MarkdownFile[], markdownFiles: MarkdownFile[],
exportFormat: "gist" | "local", exportFormat: "gist" | "local",
commandManager: AppCommandManager, commandManager: AppCommandManager,
credentials: Credentials,
progress?: ProgressCallback, progress?: ProgressCallback,
token?: CancellationToken, token?: CancellationToken,
) { ) {
@@ -249,7 +247,6 @@ async function exportResults(
description, description,
markdownFiles, markdownFiles,
commandManager, commandManager,
credentials,
progress, progress,
token, token,
); );
@@ -268,7 +265,6 @@ async function exportToGist(
description: string, description: string,
markdownFiles: MarkdownFile[], markdownFiles: MarkdownFile[],
commandManager: AppCommandManager, commandManager: AppCommandManager,
credentials: Credentials,
progress?: ProgressCallback, progress?: ProgressCallback,
token?: CancellationToken, token?: CancellationToken,
) { ) {
@@ -291,7 +287,7 @@ async function exportToGist(
{} as { [key: string]: { content: string } }, {} as { [key: string]: { content: string } },
); );
const gistUrl = await createGist(credentials, description, gistFiles); const gistUrl = await createGist(description, gistFiles);
if (gistUrl) { if (gistUrl) {
// This needs to use .then to ensure we aren't keeping the progress notification open. We shouldn't await the // This needs to use .then to ensure we aren't keeping the progress notification open. We shouldn't await the
// "Open gist" button click. // "Open gist" button click.

View File

@@ -1,5 +1,4 @@
import type { OctokitResponse } from "@octokit/types/dist-types"; import { getGitHubInstanceUrl } from "../../config";
import type { Credentials } from "../../common/authentication";
import type { VariantAnalysisSubmission } from "../shared/variant-analysis"; import type { VariantAnalysisSubmission } from "../shared/variant-analysis";
import type { import type {
VariantAnalysis, VariantAnalysis,
@@ -7,12 +6,26 @@ import type {
VariantAnalysisSubmissionRequest, VariantAnalysisSubmissionRequest,
} from "./variant-analysis"; } from "./variant-analysis";
import type { Repository } from "./repository"; import type { Repository } from "./repository";
import { extLogger } from "../../common/logging/vscode";
function getOctokitBaseUrl(): string {
let apiUrl = getGitHubInstanceUrl().toString();
if (apiUrl.endsWith("/")) {
apiUrl = apiUrl.slice(0, -1);
}
if (apiUrl.startsWith("https://")) {
apiUrl = apiUrl.replace("https://", "http://");
}
return apiUrl;
}
export async function submitVariantAnalysis( export async function submitVariantAnalysis(
credentials: Credentials,
submissionDetails: VariantAnalysisSubmission, submissionDetails: VariantAnalysisSubmission,
): Promise<VariantAnalysis> { ): Promise<VariantAnalysis> {
const octokit = await credentials.getOctokit(); try {
console.log("Getting base URL...");
const baseUrl = getOctokitBaseUrl();
void extLogger.log(`Base URL: ${baseUrl}`);
const { actionRepoRef, language, pack, databases, controllerRepoId } = const { actionRepoRef, language, pack, databases, controllerRepoId } =
submissionDetails; submissionDetails;
@@ -26,65 +39,109 @@ export async function submitVariantAnalysis(
repository_owners: databases.repositoryOwners, repository_owners: databases.repositoryOwners,
}; };
const response: OctokitResponse<VariantAnalysis> = await octokit.request( void extLogger.log(
"POST /repositories/:controllerRepoId/code-scanning/codeql/variant-analyses", `Sending fetch request with data: ${JSON.stringify(data)}`,
);
void extLogger.log(
`Fetch request URL: ${baseUrl}/repositories/${controllerRepoId}/code-scanning/codeql/variant-analyses`,
);
const response = await fetch(
`${baseUrl}/repositories/${controllerRepoId}/code-scanning/codeql/variant-analyses`,
{ {
controllerRepoId, method: "POST",
data, headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
}, },
); );
return response.data; void extLogger.log(`Response status: ${response.status}`);
}
if (!response.ok) {
throw new Error(
`Error submitting variant analysis: ${response.statusText}`,
);
}
const responseData = await response.json();
void extLogger.log(`Response data: ${responseData}`);
return responseData;
} catch (error) {
void extLogger.log(`Error: ${error}`);
throw error;
}
}
export async function getVariantAnalysis( export async function getVariantAnalysis(
credentials: Credentials,
controllerRepoId: number, controllerRepoId: number,
variantAnalysisId: number, variantAnalysisId: number,
): Promise<VariantAnalysis> { ): Promise<VariantAnalysis> {
const octokit = await credentials.getOctokit(); const baseUrl = getOctokitBaseUrl();
const response: OctokitResponse<VariantAnalysis> = await octokit.request( const response = await fetch(
"GET /repositories/:controllerRepoId/code-scanning/codeql/variant-analyses/:variantAnalysisId", `${baseUrl}/repositories/${controllerRepoId}/code-scanning/codeql/variant-analyses/${variantAnalysisId}`,
{ {
controllerRepoId, method: "GET",
variantAnalysisId, headers: {
"Content-Type": "application/json",
},
}, },
); );
return response.data; if (!response.ok) {
throw new Error(`Error getting variant analysis: ${response.statusText}`);
}
return response.json();
} }
export async function getVariantAnalysisRepo( export async function getVariantAnalysisRepo(
credentials: Credentials,
controllerRepoId: number, controllerRepoId: number,
variantAnalysisId: number, variantAnalysisId: number,
repoId: number, repoId: number,
): Promise<VariantAnalysisRepoTask> { ): Promise<VariantAnalysisRepoTask> {
const octokit = await credentials.getOctokit(); const baseUrl = getOctokitBaseUrl();
const response: OctokitResponse<VariantAnalysisRepoTask> = const response = await fetch(
await octokit.request( `${baseUrl}/repositories/${controllerRepoId}/code-scanning/codeql/variant-analyses/${variantAnalysisId}/repositories/${repoId}`,
"GET /repositories/:controllerRepoId/code-scanning/codeql/variant-analyses/:variantAnalysisId/repositories/:repoId",
{ {
controllerRepoId, method: "GET",
variantAnalysisId, headers: {
repoId, "Content-Type": "application/json",
},
}, },
); );
return response.data; if (!response.ok) {
throw new Error(
`Error getting variant analysis repo: ${response.statusText}`,
);
}
return response.json();
} }
export async function getRepositoryFromNwo( export async function getRepositoryFromNwo(
credentials: Credentials,
owner: string, owner: string,
repo: string, repo: string,
): Promise<Repository> { ): Promise<Repository> {
const octokit = await credentials.getOctokit(); const baseUrl = getOctokitBaseUrl();
const response = await octokit.rest.repos.get({ owner, repo }); const response = await fetch(`${baseUrl}/repos/${owner}/${repo}`, {
return response.data as Repository; method: "GET",
headers: {
"Content-Type": "application/json",
},
});
if (!response.ok) {
throw new Error(`Error getting repository: ${response.statusText}`);
}
return response.json();
} }
/** /**
@@ -92,22 +149,29 @@ export async function getRepositoryFromNwo(
* Returns the URL of the created gist. * Returns the URL of the created gist.
*/ */
export async function createGist( export async function createGist(
credentials: Credentials,
description: string, description: string,
files: { [key: string]: { content: string } }, files: { [key: string]: { content: string } },
): Promise<string | undefined> { ): Promise<string | undefined> {
const octokit = await credentials.getOctokit(); const baseUrl = getOctokitBaseUrl();
const response = await octokit.request("POST /gists", {
const response = await fetch(`${baseUrl}/gists`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
description, description,
files, files,
public: false, public: false,
}),
}); });
if (response.status >= 300) {
if (!response.ok) {
throw new Error( throw new Error(
`Error exporting variant analysis results: ${response.status} ${ `Error creating gist: ${response.status} ${response.statusText}`,
response?.data || ""
}`,
); );
} }
return response.data.html_url;
const data = await response.json();
return data.html_url;
} }

View File

@@ -1,5 +1,5 @@
import type { CancellationToken } from "vscode"; import type { CancellationToken } from "vscode";
import { Uri, window } from "vscode"; import { Uri } from "vscode";
import { join, sep, basename, relative } from "path"; import { join, sep, basename, relative } from "path";
import { dump, load } from "js-yaml"; import { dump, load } from "js-yaml";
import { copy, writeFile, readFile, mkdirp } from "fs-extra"; import { copy, writeFile, readFile, mkdirp } from "fs-extra";
@@ -7,26 +7,17 @@ import type { DirectoryResult } from "tmp-promise";
import { dir, tmpName } from "tmp-promise"; import { dir, tmpName } from "tmp-promise";
import { tmpDir } from "../tmp-dir"; import { tmpDir } from "../tmp-dir";
import { getOnDiskWorkspaceFolders } from "../common/vscode/workspace-folders"; import { getOnDiskWorkspaceFolders } from "../common/vscode/workspace-folders";
import type { Credentials } from "../common/authentication";
import type { CodeQLCliServer } from "../codeql-cli/cli"; import type { CodeQLCliServer } from "../codeql-cli/cli";
import { extLogger } from "../common/logging/vscode"; import { extLogger } from "../common/logging/vscode";
import { import { getActionBranch } from "../config";
getActionBranch,
getRemoteControllerRepo,
setRemoteControllerRepo,
} from "../config";
import type { ProgressCallback } from "../common/vscode/progress"; import type { ProgressCallback } from "../common/vscode/progress";
import { UserCancellationException } from "../common/vscode/progress"; import { UserCancellationException } from "../common/vscode/progress";
import type { RequestError } from "@octokit/types/dist-types";
import type { QueryMetadata } from "../common/interface-types"; import type { QueryMetadata } from "../common/interface-types";
import { getErrorMessage, REPO_REGEX } from "../common/helpers-pure";
import { getRepositoryFromNwo } from "./gh-api/gh-api-client";
import type { RepositorySelection } from "./repository-selection"; import type { RepositorySelection } from "./repository-selection";
import { import {
getRepositorySelection, getRepositorySelection,
isValidSelection, isValidSelection,
} from "./repository-selection"; } from "./repository-selection";
import type { Repository } from "./shared/repository";
import type { DbManager } from "../databases/db-manager"; import type { DbManager } from "../databases/db-manager";
import { import {
getQlPackFilePath, getQlPackFilePath,
@@ -285,13 +276,11 @@ interface PreparedRemoteQuery {
base64Pack: string; base64Pack: string;
modelPacks: ModelPackDetails[]; modelPacks: ModelPackDetails[];
repoSelection: RepositorySelection; repoSelection: RepositorySelection;
controllerRepo: Repository;
queryStartTime: number; queryStartTime: number;
} }
export async function prepareRemoteQueryRun( export async function prepareRemoteQueryRun(
cliServer: CodeQLCliServer, cliServer: CodeQLCliServer,
credentials: Credentials,
qlPackDetails: QlPackDetails, qlPackDetails: QlPackDetails,
progress: ProgressCallback, progress: ProgressCallback,
token: CancellationToken, token: CancellationToken,
@@ -322,8 +311,6 @@ export async function prepareRemoteQueryRun(
message: "Determining controller repo", message: "Determining controller repo",
}); });
const controllerRepo = await getControllerRepo(credentials);
progress({ progress({
maxStep: 4, maxStep: 4,
step: 3, step: 3,
@@ -367,7 +354,6 @@ export async function prepareRemoteQueryRun(
base64Pack: generatedPack.base64Pack, base64Pack: generatedPack.base64Pack,
modelPacks: generatedPack.modelPacks, modelPacks: generatedPack.modelPacks,
repoSelection, repoSelection,
controllerRepo,
queryStartTime, queryStartTime,
}; };
} }
@@ -494,84 +480,6 @@ export function getQueryName(
return queryMetadata?.name ?? basename(queryFilePath); return queryMetadata?.name ?? basename(queryFilePath);
} }
export async function getControllerRepo(
credentials: Credentials,
): Promise<Repository> {
// Get the controller repo from the config, if it exists.
// If it doesn't exist, prompt the user to enter it, check
// whether the repo exists, and save the nwo to the config.
let shouldSetControllerRepo = false;
let controllerRepoNwo: string | undefined;
controllerRepoNwo = getRemoteControllerRepo();
if (!controllerRepoNwo || !REPO_REGEX.test(controllerRepoNwo)) {
void extLogger.log(
controllerRepoNwo
? "Invalid controller repository name."
: "No controller repository defined.",
);
controllerRepoNwo = await window.showInputBox({
title:
"Controller repository in which to run GitHub Actions workflows for variant analyses",
placeHolder: "<owner>/<repo>",
prompt:
"Enter the name of a GitHub repository in the format <owner>/<repo>. You can change this in the extension settings.",
ignoreFocusOut: true,
});
if (!controllerRepoNwo) {
throw new UserCancellationException("No controller repository entered.");
} else if (!REPO_REGEX.test(controllerRepoNwo)) {
// Check if user entered invalid input
throw new UserCancellationException(
"Invalid repository format. Must be a valid GitHub repository in the format <owner>/<repo>.",
);
}
shouldSetControllerRepo = true;
}
void extLogger.log(`Using controller repository: ${controllerRepoNwo}`);
const controllerRepo = await getControllerRepoFromApi(
credentials,
controllerRepoNwo,
);
if (shouldSetControllerRepo) {
void extLogger.log(
`Setting the controller repository as: ${controllerRepoNwo}`,
);
await setRemoteControllerRepo(controllerRepoNwo);
}
return controllerRepo;
}
async function getControllerRepoFromApi(
credentials: Credentials,
nwo: string,
): Promise<Repository> {
const [owner, repo] = nwo.split("/");
try {
const controllerRepo = await getRepositoryFromNwo(credentials, owner, repo);
void extLogger.log(`Controller repository ID: ${controllerRepo.id}`);
return {
id: controllerRepo.id,
fullName: controllerRepo.full_name,
private: controllerRepo.private,
};
} catch (e) {
if ((e as RequestError).status === 404) {
throw new Error(`Controller repository "${owner}/${repo}" not found`);
} else {
throw new Error(
`Error getting controller repository "${owner}/${repo}": ${getErrorMessage(
e,
)}`,
);
}
}
}
function removeWorkspaceRefs(qlpack: QlPackFile) { function removeWorkspaceRefs(qlpack: QlPackFile) {
if (!qlpack.dependencies) { if (!qlpack.dependencies) {
return; return;

View File

@@ -373,16 +373,19 @@ export class VariantAnalysisManager
); );
} }
// log to extLogger
void this.app.logger.log(
`Running variant analysis with query: ${queryName}, language: ${variantAnalysisLanguage}`,
);
const { const {
actionBranch, actionBranch,
base64Pack, base64Pack,
modelPacks, modelPacks,
repoSelection, repoSelection,
controllerRepo,
queryStartTime, queryStartTime,
} = await prepareRemoteQueryRun( } = await prepareRemoteQueryRun(
this.cliServer, this.cliServer,
this.app.credentials,
qlPackDetails, qlPackDetails,
progress, progress,
token, token,
@@ -399,12 +402,15 @@ export class VariantAnalysisManager
count: qlPackDetails.queryFiles.length, count: qlPackDetails.queryFiles.length,
}; };
// log that submitting
void this.app.logger.log("Submitting variant analysis");
const variantAnalysisSubmission: VariantAnalysisSubmission = { const variantAnalysisSubmission: VariantAnalysisSubmission = {
startTime: queryStartTime, startTime: queryStartTime,
actionRepoRef: actionBranch, actionRepoRef: actionBranch,
controllerRepoId: controllerRepo.id,
language: variantAnalysisLanguage, language: variantAnalysisLanguage,
pack: base64Pack, pack: base64Pack,
controllerRepoId: 0,
query: { query: {
name: queryName, name: queryName,
filePath: firstQueryFile, filePath: firstQueryFile,
@@ -422,7 +428,6 @@ export class VariantAnalysisManager
let variantAnalysisResponse: ApiVariantAnalysis; let variantAnalysisResponse: ApiVariantAnalysis;
try { try {
variantAnalysisResponse = await submitVariantAnalysis( variantAnalysisResponse = await submitVariantAnalysis(
this.app.credentials,
variantAnalysisSubmission, variantAnalysisSubmission,
); );
} catch (e: unknown) { } catch (e: unknown) {
@@ -431,9 +436,17 @@ export class VariantAnalysisManager
e instanceof RequestError && e instanceof RequestError &&
handleRequestError(e, this.config.githubUrl, this.app.logger) handleRequestError(e, this.config.githubUrl, this.app.logger)
) { ) {
// log
void this.app.logger.log(
`Error submitting variant analysis: ${getErrorMessage(e)}`,
);
return undefined; return undefined;
} }
// throwing
void this.app.logger.log(
`Error submitting variant analysis: ${getErrorMessage(e)}`,
);
throw e; throw e;
} }
@@ -806,8 +819,7 @@ export class VariantAnalysisManager
let repoTask: VariantAnalysisRepositoryTask; let repoTask: VariantAnalysisRepositoryTask;
try { try {
const repoTaskResponse = await getVariantAnalysisRepo( const repoTaskResponse = await getVariantAnalysisRepo(
this.app.credentials, 0,
variantAnalysis.controllerRepo.id,
variantAnalysis.id, variantAnalysis.id,
scannedRepo.repository.id, scannedRepo.repository.id,
); );

View File

@@ -62,7 +62,6 @@ export class VariantAnalysisMonitor extends DisposableObject {
try { try {
await this._monitorVariantAnalysis( await this._monitorVariantAnalysis(
variantAnalysis.id, variantAnalysis.id,
variantAnalysis.controllerRepo.id,
variantAnalysis.executionStartTime, variantAnalysis.executionStartTime,
variantAnalysis.query.name, variantAnalysis.query.name,
variantAnalysis.language, variantAnalysis.language,
@@ -74,7 +73,6 @@ export class VariantAnalysisMonitor extends DisposableObject {
private async _monitorVariantAnalysis( private async _monitorVariantAnalysis(
variantAnalysisId: number, variantAnalysisId: number,
controllerRepoId: number,
executionStartTime: number, executionStartTime: number,
queryName: string, queryName: string,
language: QueryLanguage, language: QueryLanguage,
@@ -97,11 +95,7 @@ export class VariantAnalysisMonitor extends DisposableObject {
let variantAnalysisSummary: ApiVariantAnalysis; let variantAnalysisSummary: ApiVariantAnalysis;
try { try {
variantAnalysisSummary = await getVariantAnalysis( variantAnalysisSummary = await getVariantAnalysis(0, variantAnalysisId);
this.app.credentials,
controllerRepoId,
variantAnalysisId,
);
} catch (e) { } catch (e) {
const errorMessage = getErrorMessage(e); const errorMessage = getErrorMessage(e);

View File

@@ -1,5 +1,5 @@
[ [
"v2.17.3", "v2.17.5",
"v2.16.6", "v2.16.6",
"v2.15.5", "v2.15.5",
"v2.14.6", "v2.14.6",

View File

@@ -20,7 +20,7 @@ export default defineConfig({
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: { use: {
/* Base URL to use in actions like `await page.goto('/')`. */ /* Base URL to use in actions like `await page.goto('/')`. */
baseURL: "http://localhost:8080", baseURL: "http://server:8080",
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: "on-first-retry", trace: "on-first-retry",

6
package-lock.json generated Normal file
View File

@@ -0,0 +1,6 @@
{
"name": "vscode-codeql",
"lockfileVersion": 3,
"requires": true,
"packages": {}
}

View File

@@ -0,0 +1,27 @@
{
"folders": [
{
"path": "."
}
],
"settings": {
"typescript.tsdk": "./extensions/ql-vscode/node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true,
"terminal.integrated.env.linux": {
"LANG": "en-US",
"TZ": "UTC"
},
"terminal.integrated.env.osx": {
"LANG": "en-US",
"TZ": "UTC"
},
"terminal.integrated.env.windows": {
"LANG": "en-US",
"TZ": "UTC"
},
"github.copilot.advanced": {},
"github-enterprise.uri": "http://server:8080",
"sarif-viewer.connectToGithubCodeScanning": "off"
}
}