mirror of
https://github.com/github/codeql-action.git
synced 2026-06-02 11:55:22 +00:00
Compare commits
40 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 57b3666b1d | |||
| 1251f87758 | |||
| 6963dfbbc5 | |||
| d426d33115 | |||
| f22e7a29ce | |||
| d8e5e3dbab | |||
| 9b49e27edb | |||
| aeb3e20ace | |||
| d622e410d6 | |||
| fb605661cd | |||
| 063bb8b614 | |||
| 3d8236de69 | |||
| d1eb1207b4 | |||
| b1eeb13c4c | |||
| 964d328667 | |||
| f9b6569832 | |||
| 3782e65e9f | |||
| dafa67e1d3 | |||
| 0d5f0f55c2 | |||
| 115001ba8d | |||
| cef2e7a910 | |||
| 5e6adf70ed | |||
| ad170e6c4e | |||
| 6a37b3a57a | |||
| bef1eb7126 | |||
| b42b7546a5 | |||
| 8b0c522441 | |||
| 7c7926f8df | |||
| 838486a3c3 | |||
| 09a0f62a7a | |||
| 0e150e4076 | |||
| 8a1e375368 | |||
| 0fb8a6672b | |||
| 80795fb0d4 | |||
| 0cd24d8654 | |||
| 14c150999e | |||
| 89c58e65c1 | |||
| a0a8d16e7b | |||
| bd77449ac2 | |||
| 652e91defb |
@@ -16,5 +16,5 @@ inputs:
|
|||||||
Comma separated list of query ids that should NOT be included in this SARIF file.
|
Comma separated list of query ids that should NOT be included in this SARIF file.
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node24
|
||||||
main: index.js
|
main: index.js
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
name: Verify that the best-effort debug artifact scan completed
|
name: Verify that the best-effort debug artifact scan completed
|
||||||
description: Verifies that the best-effort debug artifact scan completed successfully during tests
|
description: Verifies that the best-effort debug artifact scan completed successfully during tests
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node24
|
||||||
main: index.js
|
main: index.js
|
||||||
post: post.js
|
post: post.js
|
||||||
|
|||||||
+1
-1
@@ -59,7 +59,7 @@ jobs:
|
|||||||
use-all-platform-bundle: 'false'
|
use-all-platform-bundle: 'false'
|
||||||
setup-kotlin: 'true'
|
setup-kotlin: 'true'
|
||||||
- name: Set up Ruby
|
- name: Set up Ruby
|
||||||
uses: ruby/setup-ruby@c4e5b1316158f92e3d49443a9d58b31d25ac0f8f # v1.306.0
|
uses: ruby/setup-ruby@6aaa311d81eba98ae12eaffbcb63296ace0efcde # v1.307.0
|
||||||
with:
|
with:
|
||||||
ruby-version: 2.6
|
ruby-version: 2.6
|
||||||
- name: Install Code Scanning integration
|
- name: Install Code Scanning integration
|
||||||
|
|||||||
+45
-33
@@ -2,24 +2,28 @@
|
|||||||
|
|
||||||
See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs.
|
See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs.
|
||||||
|
|
||||||
## 3.36.0 - 22 May 2026
|
## [UNRELEASED]
|
||||||
|
|
||||||
|
- Organizations can create a custom repository property named `github-codeql-tools` to set a default CodeQL CLI tools value. You can optionally set `github-codeql-tools-mode` to control scope: use `enforce` (default) to apply to all workflows, or `dynamic` to apply only to dynamic workflows. If a workflow provides an explicit `tools:` input, that input takes precedence. For more information, see [Managing custom properties for repositories in your organization](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization), [Repository properties for Code Scanning](https://docs.github.com/en/code-security/concepts/code-scanning/repository-properties) and [Customizing your advanced setup for code scanning](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning).
|
||||||
|
|
||||||
|
## 4.36.0 - 22 May 2026
|
||||||
|
|
||||||
- _Breaking change_: Bump the minimum required CodeQL bundle version to 2.19.4. [#3894](https://github.com/github/codeql-action/pull/3894)
|
- _Breaking change_: Bump the minimum required CodeQL bundle version to 2.19.4. [#3894](https://github.com/github/codeql-action/pull/3894)
|
||||||
- Add support for SHA-256 Git object IDs. [#3893](https://github.com/github/codeql-action/pull/3893)
|
- Add support for SHA-256 Git object IDs. [#3893](https://github.com/github/codeql-action/pull/3893)
|
||||||
- Update default CodeQL bundle version to [2.25.5](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.5). [#3926](https://github.com/github/codeql-action/pull/3926)
|
- Update default CodeQL bundle version to [2.25.5](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.5). [#3926](https://github.com/github/codeql-action/pull/3926)
|
||||||
|
|
||||||
## 3.35.5 - 15 May 2026
|
## 4.35.5 - 15 May 2026
|
||||||
|
|
||||||
- We have improved how the JavaScript bundles for the CodeQL Action are generated to avoid duplication across bundles and reduce the size of the repository by around 70%. This should have no effect on the runtime behaviour of the CodeQL Action. [#3899](https://github.com/github/codeql-action/pull/3899)
|
- We have improved how the JavaScript bundles for the CodeQL Action are generated to avoid duplication across bundles and reduce the size of the repository by around 70%. This should have no effect on the runtime behaviour of the CodeQL Action. [#3899](https://github.com/github/codeql-action/pull/3899)
|
||||||
- For performance and accuracy reasons, [improved incremental analysis](https://github.com/github/roadmap/issues/1158) will now only be enabled on a pull request when diff-informed analysis is also enabled for that run. If diff-informed analysis is unavailable (for example, because the PR diff ranges could not be computed), the action will fall back to a full analysis. [#3791](https://github.com/github/codeql-action/pull/3791)
|
- For performance and accuracy reasons, [improved incremental analysis](https://github.com/github/roadmap/issues/1158) will now only be enabled on a pull request when diff-informed analysis is also enabled for that run. If diff-informed analysis is unavailable (for example, because the PR diff ranges could not be computed), the action will fall back to a full analysis. [#3791](https://github.com/github/codeql-action/pull/3791)
|
||||||
- If multiple inputs are provided for the GitHub-internal `analysis-kinds` input, only `code-scanning` will be enabled. The `analysis-kinds` input is experimental, for GitHub-internal use only, and may change without notice at any time. [#3892](https://github.com/github/codeql-action/pull/3892)
|
- If multiple inputs are provided for the GitHub-internal `analysis-kinds` input, only `code-scanning` will be enabled. The `analysis-kinds` input is experimental, for GitHub-internal use only, and may change without notice at any time. [#3892](https://github.com/github/codeql-action/pull/3892)
|
||||||
- Added an experimental change which, when running a Code Scanning analysis for a PR with [improved incremental analysis](https://github.com/github/roadmap/issues/1158) enabled, prefers CodeQL CLI versions that have a cached overlay-base database for the configured languages. This speeds up analysis for a repository when there is not yet a cached overlay-base database for the latest CLI version. We expect to roll this change out to everyone in May. [#3880](https://github.com/github/codeql-action/pull/3880)
|
- Added an experimental change which, when running a Code Scanning analysis for a PR with [improved incremental analysis](https://github.com/github/roadmap/issues/1158) enabled, prefers CodeQL CLI versions that have a cached overlay-base database for the configured languages. This speeds up analysis for a repository when there is not yet a cached overlay-base database for the latest CLI version. We expect to roll this change out to everyone in May. [#3880](https://github.com/github/codeql-action/pull/3880)
|
||||||
|
|
||||||
## 3.35.4 - 07 May 2026
|
## 4.35.4 - 07 May 2026
|
||||||
|
|
||||||
- Update default CodeQL bundle version to [2.25.4](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.4). [#3881](https://github.com/github/codeql-action/pull/3881)
|
- Update default CodeQL bundle version to [2.25.4](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.4). [#3881](https://github.com/github/codeql-action/pull/3881)
|
||||||
|
|
||||||
## 3.35.3 - 01 May 2026
|
## 4.35.3 - 01 May 2026
|
||||||
|
|
||||||
- _Upcoming breaking change_: Add a deprecation warning for customers using CodeQL version 2.19.3 and earlier. These versions of CodeQL were discontinued on 9 April 2026 alongside GitHub Enterprise Server 3.15, and will be unsupported by the next minor release of the CodeQL Action. [#3837](https://github.com/github/codeql-action/pull/3837)
|
- _Upcoming breaking change_: Add a deprecation warning for customers using CodeQL version 2.19.3 and earlier. These versions of CodeQL were discontinued on 9 April 2026 alongside GitHub Enterprise Server 3.15, and will be unsupported by the next minor release of the CodeQL Action. [#3837](https://github.com/github/codeql-action/pull/3837)
|
||||||
- Configurations for private registries that use Cloudsmith or GCP OIDC are now accepted. [#3850](https://github.com/github/codeql-action/pull/3850)
|
- Configurations for private registries that use Cloudsmith or GCP OIDC are now accepted. [#3850](https://github.com/github/codeql-action/pull/3850)
|
||||||
@@ -27,7 +31,7 @@ See the [releases page](https://github.com/github/codeql-action/releases) for th
|
|||||||
- Fixed a bug where two diagnostics produced within the same millisecond could overwrite each other on disk, causing one of them to be lost. [#3852](https://github.com/github/codeql-action/pull/3852)
|
- Fixed a bug where two diagnostics produced within the same millisecond could overwrite each other on disk, causing one of them to be lost. [#3852](https://github.com/github/codeql-action/pull/3852)
|
||||||
- Update default CodeQL bundle version to [2.25.3](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.3). [#3865](https://github.com/github/codeql-action/pull/3865)
|
- Update default CodeQL bundle version to [2.25.3](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.3). [#3865](https://github.com/github/codeql-action/pull/3865)
|
||||||
|
|
||||||
## 3.35.2 - 15 Apr 2026
|
## 4.35.2 - 15 Apr 2026
|
||||||
|
|
||||||
- The undocumented TRAP cache cleanup feature that could be enabled using the `CODEQL_ACTION_CLEANUP_TRAP_CACHES` environment variable is deprecated and will be removed in May 2026. If you are affected by this, we recommend disabling TRAP caching by passing the `trap-caching: false` input to the `init` Action. [#3795](https://github.com/github/codeql-action/pull/3795)
|
- The undocumented TRAP cache cleanup feature that could be enabled using the `CODEQL_ACTION_CLEANUP_TRAP_CACHES` environment variable is deprecated and will be removed in May 2026. If you are affected by this, we recommend disabling TRAP caching by passing the `trap-caching: false` input to the `init` Action. [#3795](https://github.com/github/codeql-action/pull/3795)
|
||||||
- The Git version 2.36.0 requirement for improved incremental analysis now only applies to repositories that contain submodules. [#3789](https://github.com/github/codeql-action/pull/3789)
|
- The Git version 2.36.0 requirement for improved incremental analysis now only applies to repositories that contain submodules. [#3789](https://github.com/github/codeql-action/pull/3789)
|
||||||
@@ -35,28 +39,29 @@ See the [releases page](https://github.com/github/codeql-action/releases) for th
|
|||||||
- Fixed a bug in the validation of OIDC configurations for private registries that was added in CodeQL Action 4.33.0 / 3.33.0. [#3807](https://github.com/github/codeql-action/pull/3807)
|
- Fixed a bug in the validation of OIDC configurations for private registries that was added in CodeQL Action 4.33.0 / 3.33.0. [#3807](https://github.com/github/codeql-action/pull/3807)
|
||||||
- Update default CodeQL bundle version to [2.25.2](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.2). [#3823](https://github.com/github/codeql-action/pull/3823)
|
- Update default CodeQL bundle version to [2.25.2](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.2). [#3823](https://github.com/github/codeql-action/pull/3823)
|
||||||
|
|
||||||
## 3.35.1 - 27 Mar 2026
|
## 4.35.1 - 27 Mar 2026
|
||||||
|
|
||||||
- Fix incorrect minimum required Git version for [improved incremental analysis](https://github.com/github/roadmap/issues/1158): it should have been 2.36.0, not 2.11.0. [#3781](https://github.com/github/codeql-action/pull/3781)
|
- Fix incorrect minimum required Git version for [improved incremental analysis](https://github.com/github/roadmap/issues/1158): it should have been 2.36.0, not 2.11.0. [#3781](https://github.com/github/codeql-action/pull/3781)
|
||||||
|
|
||||||
## 3.35.0 - 27 Mar 2026
|
## 4.35.0 - 27 Mar 2026
|
||||||
|
|
||||||
- Reduced the minimum Git version required for [improved incremental analysis](https://github.com/github/roadmap/issues/1158) from 2.38.0 to 2.11.0. [#3767](https://github.com/github/codeql-action/pull/3767)
|
- Reduced the minimum Git version required for [improved incremental analysis](https://github.com/github/roadmap/issues/1158) from 2.38.0 to 2.11.0. [#3767](https://github.com/github/codeql-action/pull/3767)
|
||||||
- Update default CodeQL bundle version to [2.25.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.1). [#3773](https://github.com/github/codeql-action/pull/3773)
|
- Update default CodeQL bundle version to [2.25.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.1). [#3773](https://github.com/github/codeql-action/pull/3773)
|
||||||
|
|
||||||
## 3.34.1 - 20 Mar 2026
|
## 4.34.1 - 20 Mar 2026
|
||||||
|
|
||||||
- Downgrade default CodeQL bundle version to [2.24.3](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.3) due to issues with a small percentage of Actions and JavaScript analyses. [#3762](https://github.com/github/codeql-action/pull/3762)
|
- Downgrade default CodeQL bundle version to [2.24.3](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.3) due to issues with a small percentage of Actions and JavaScript analyses. [#3762](https://github.com/github/codeql-action/pull/3762)
|
||||||
|
|
||||||
## 3.34.0 - 20 Mar 2026
|
## 4.34.0 - 20 Mar 2026
|
||||||
|
|
||||||
- Added an experimental change which disables TRAP caching when [improved incremental analysis](https://github.com/github/roadmap/issues/1158) is enabled, since improved incremental analysis supersedes TRAP caching. This will improve performance and reduce Actions cache usage. We expect to roll this change out to everyone in March. [#3569](https://github.com/github/codeql-action/pull/3569)
|
- Added an experimental change which disables TRAP caching when [improved incremental analysis](https://github.com/github/roadmap/issues/1158) is enabled, since improved incremental analysis supersedes TRAP caching. This will improve performance and reduce Actions cache usage. We expect to roll this change out to everyone in March. [#3569](https://github.com/github/codeql-action/pull/3569)
|
||||||
- We are rolling out improved incremental analysis to C/C++ analyses that use build mode `none`. We expect this rollout to be complete by the end of April 2026. [#3584](https://github.com/github/codeql-action/pull/3584)
|
- We are rolling out improved incremental analysis to C/C++ analyses that use build mode `none`. We expect this rollout to be complete by the end of April 2026. [#3584](https://github.com/github/codeql-action/pull/3584)
|
||||||
- Update default CodeQL bundle version to [2.25.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.0). [#3585](https://github.com/github/codeql-action/pull/3585)
|
- Update default CodeQL bundle version to [2.25.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.0). [#3585](https://github.com/github/codeql-action/pull/3585)
|
||||||
|
|
||||||
## 3.33.0 - 16 Mar 2026
|
## 4.33.0 - 16 Mar 2026
|
||||||
|
|
||||||
- Upcoming change: Starting April 2026, the CodeQL Action will skip collecting file coverage information on pull requests to improve analysis performance. File coverage information will still be computed on non-PR analyses. Pull request analyses will log a warning about this upcoming change. [#3562](https://github.com/github/codeql-action/pull/3562)
|
- Upcoming change: Starting April 2026, the CodeQL Action will skip collecting file coverage information on pull requests to improve analysis performance. File coverage information will still be computed on non-PR analyses. Pull request analyses will log a warning about this upcoming change. [#3562](https://github.com/github/codeql-action/pull/3562)
|
||||||
|
|
||||||
To opt out of this change:
|
To opt out of this change:
|
||||||
- **Repositories owned by an organization:** Create a custom repository property with the name `github-codeql-file-coverage-on-prs` and the type "True/false", then set this property to `true` in the repository's settings. For more information, see [Managing custom properties for repositories in your organization](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization). Alternatively, if you are using an advanced setup workflow, you can set the `CODEQL_ACTION_FILE_COVERAGE_ON_PRS` environment variable to `true` in your workflow.
|
- **Repositories owned by an organization:** Create a custom repository property with the name `github-codeql-file-coverage-on-prs` and the type "True/false", then set this property to `true` in the repository's settings. For more information, see [Managing custom properties for repositories in your organization](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization). Alternatively, if you are using an advanced setup workflow, you can set the `CODEQL_ACTION_FILE_COVERAGE_ON_PRS` environment variable to `true` in your workflow.
|
||||||
- **User-owned repositories using default setup:** Switch to an advanced setup workflow and set the `CODEQL_ACTION_FILE_COVERAGE_ON_PRS` environment variable to `true` in your workflow.
|
- **User-owned repositories using default setup:** Switch to an advanced setup workflow and set the `CODEQL_ACTION_FILE_COVERAGE_ON_PRS` environment variable to `true` in your workflow.
|
||||||
@@ -67,11 +72,11 @@ See the [releases page](https://github.com/github/codeql-action/releases) for th
|
|||||||
- Fixed the retry mechanism for database uploads. Previously this would fail with the error "Response body object should not be disturbed or locked". [#3564](https://github.com/github/codeql-action/pull/3564)
|
- Fixed the retry mechanism for database uploads. Previously this would fail with the error "Response body object should not be disturbed or locked". [#3564](https://github.com/github/codeql-action/pull/3564)
|
||||||
- A warning is now emitted if the CodeQL Action detects a repository property whose name suggests that it relates to the CodeQL Action, but which is not one of the properties recognised by the current version of the CodeQL Action. [#3570](https://github.com/github/codeql-action/pull/3570)
|
- A warning is now emitted if the CodeQL Action detects a repository property whose name suggests that it relates to the CodeQL Action, but which is not one of the properties recognised by the current version of the CodeQL Action. [#3570](https://github.com/github/codeql-action/pull/3570)
|
||||||
|
|
||||||
## 3.32.6 - 05 Mar 2026
|
## 4.32.6 - 05 Mar 2026
|
||||||
|
|
||||||
- Update default CodeQL bundle version to [2.24.3](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.3). [#3548](https://github.com/github/codeql-action/pull/3548)
|
- Update default CodeQL bundle version to [2.24.3](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.3). [#3548](https://github.com/github/codeql-action/pull/3548)
|
||||||
|
|
||||||
## 3.32.5 - 02 Mar 2026
|
## 4.32.5 - 02 Mar 2026
|
||||||
|
|
||||||
- Repositories owned by an organization can now set up the `github-codeql-disable-overlay` custom repository property to disable [improved incremental analysis for CodeQL](https://github.com/github/roadmap/issues/1158). First, create a custom repository property with the name `github-codeql-disable-overlay` and the type "True/false" in the organization's settings. Then in the repository's settings, set this property to `true` to disable improved incremental analysis. For more information, see [Managing custom properties for repositories in your organization](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization). This feature is not yet available on GitHub Enterprise Server. [#3507](https://github.com/github/codeql-action/pull/3507)
|
- Repositories owned by an organization can now set up the `github-codeql-disable-overlay` custom repository property to disable [improved incremental analysis for CodeQL](https://github.com/github/roadmap/issues/1158). First, create a custom repository property with the name `github-codeql-disable-overlay` and the type "True/false" in the organization's settings. Then in the repository's settings, set this property to `true` to disable improved incremental analysis. For more information, see [Managing custom properties for repositories in your organization](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization). This feature is not yet available on GitHub Enterprise Server. [#3507](https://github.com/github/codeql-action/pull/3507)
|
||||||
- Added an experimental change so that when [improved incremental analysis](https://github.com/github/roadmap/issues/1158) fails on a runner — potentially due to insufficient disk space — the failure is recorded in the Actions cache so that subsequent runs will automatically skip improved incremental analysis until something changes (e.g. a larger runner is provisioned or a new CodeQL version is released). We expect to roll this change out to everyone in March. [#3487](https://github.com/github/codeql-action/pull/3487)
|
- Added an experimental change so that when [improved incremental analysis](https://github.com/github/roadmap/issues/1158) fails on a runner — potentially due to insufficient disk space — the failure is recorded in the Actions cache so that subsequent runs will automatically skip improved incremental analysis until something changes (e.g. a larger runner is provisioned or a new CodeQL version is released). We expect to roll this change out to everyone in March. [#3487](https://github.com/github/codeql-action/pull/3487)
|
||||||
@@ -81,7 +86,7 @@ See the [releases page](https://github.com/github/codeql-action/releases) for th
|
|||||||
- Added an experimental change which allows the `start-proxy` action to resolve the CodeQL CLI version from feature flags instead of using the linked CLI bundle version. We expect to roll this change out to everyone in March. [#3512](https://github.com/github/codeql-action/pull/3512)
|
- Added an experimental change which allows the `start-proxy` action to resolve the CodeQL CLI version from feature flags instead of using the linked CLI bundle version. We expect to roll this change out to everyone in March. [#3512](https://github.com/github/codeql-action/pull/3512)
|
||||||
- The previously experimental changes from versions 4.32.3, 4.32.4, 3.32.3 and 3.32.4 are now enabled by default. [#3503](https://github.com/github/codeql-action/pull/3503), [#3504](https://github.com/github/codeql-action/pull/3504)
|
- The previously experimental changes from versions 4.32.3, 4.32.4, 3.32.3 and 3.32.4 are now enabled by default. [#3503](https://github.com/github/codeql-action/pull/3503), [#3504](https://github.com/github/codeql-action/pull/3504)
|
||||||
|
|
||||||
## 3.32.4 - 20 Feb 2026
|
## 4.32.4 - 20 Feb 2026
|
||||||
|
|
||||||
- Update default CodeQL bundle version to [2.24.2](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.2). [#3493](https://github.com/github/codeql-action/pull/3493)
|
- Update default CodeQL bundle version to [2.24.2](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.2). [#3493](https://github.com/github/codeql-action/pull/3493)
|
||||||
- Added an experimental change which improves how certificates are generated for the authentication proxy that is used by the CodeQL Action in Default Setup when [private package registries are configured](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries). This is expected to generate more widely compatible certificates and should have no impact on analyses which are working correctly already. We expect to roll this change out to everyone in February. [#3473](https://github.com/github/codeql-action/pull/3473)
|
- Added an experimental change which improves how certificates are generated for the authentication proxy that is used by the CodeQL Action in Default Setup when [private package registries are configured](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries). This is expected to generate more widely compatible certificates and should have no impact on analyses which are working correctly already. We expect to roll this change out to everyone in February. [#3473](https://github.com/github/codeql-action/pull/3473)
|
||||||
@@ -89,88 +94,88 @@ See the [releases page](https://github.com/github/codeql-action/releases) for th
|
|||||||
- Added a setting which allows the CodeQL Action to enable network debugging for Java programs. This will help GitHub staff support customers with troubleshooting issues in GitHub-managed CodeQL workflows, such as Default Setup. This setting can only be enabled by GitHub staff. [#3485](https://github.com/github/codeql-action/pull/3485)
|
- Added a setting which allows the CodeQL Action to enable network debugging for Java programs. This will help GitHub staff support customers with troubleshooting issues in GitHub-managed CodeQL workflows, such as Default Setup. This setting can only be enabled by GitHub staff. [#3485](https://github.com/github/codeql-action/pull/3485)
|
||||||
- Added a setting which enables GitHub-managed workflows, such as Default Setup, to use a [nightly CodeQL CLI release](https://github.com/dsp-testing/codeql-cli-nightlies) instead of the latest, stable release that is used by default. This will help GitHub staff support customers whose analyses for a given repository or organization require early access to a change in an upcoming CodeQL CLI release. This setting can only be enabled by GitHub staff. [#3484](https://github.com/github/codeql-action/pull/3484)
|
- Added a setting which enables GitHub-managed workflows, such as Default Setup, to use a [nightly CodeQL CLI release](https://github.com/dsp-testing/codeql-cli-nightlies) instead of the latest, stable release that is used by default. This will help GitHub staff support customers whose analyses for a given repository or organization require early access to a change in an upcoming CodeQL CLI release. This setting can only be enabled by GitHub staff. [#3484](https://github.com/github/codeql-action/pull/3484)
|
||||||
|
|
||||||
## 3.32.3 - 13 Feb 2026
|
## 4.32.3 - 13 Feb 2026
|
||||||
|
|
||||||
- Added experimental support for testing connections to [private package registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries). This feature is not currently enabled for any analysis. In the future, it may be enabled by default for Default Setup. [#3466](https://github.com/github/codeql-action/pull/3466)
|
- Added experimental support for testing connections to [private package registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries). This feature is not currently enabled for any analysis. In the future, it may be enabled by default for Default Setup. [#3466](https://github.com/github/codeql-action/pull/3466)
|
||||||
|
|
||||||
## 3.32.2 - 05 Feb 2026
|
## 4.32.2 - 05 Feb 2026
|
||||||
|
|
||||||
- Update default CodeQL bundle version to [2.24.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.1). [#3460](https://github.com/github/codeql-action/pull/3460)
|
- Update default CodeQL bundle version to [2.24.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.1). [#3460](https://github.com/github/codeql-action/pull/3460)
|
||||||
|
|
||||||
## 3.32.1 - 02 Feb 2026
|
## 4.32.1 - 02 Feb 2026
|
||||||
|
|
||||||
- A warning is now shown in Default Setup workflow logs if a [private package registry is configured](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) using a GitHub Personal Access Token (PAT), but no username is configured. [#3422](https://github.com/github/codeql-action/pull/3422)
|
- A warning is now shown in Default Setup workflow logs if a [private package registry is configured](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) using a GitHub Personal Access Token (PAT), but no username is configured. [#3422](https://github.com/github/codeql-action/pull/3422)
|
||||||
- Fixed a bug which caused the CodeQL Action to fail when repository properties cannot successfully be retrieved. [#3421](https://github.com/github/codeql-action/pull/3421)
|
- Fixed a bug which caused the CodeQL Action to fail when repository properties cannot successfully be retrieved. [#3421](https://github.com/github/codeql-action/pull/3421)
|
||||||
|
|
||||||
## 3.32.0 - 26 Jan 2026
|
## 4.32.0 - 26 Jan 2026
|
||||||
|
|
||||||
- Update default CodeQL bundle version to [2.24.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.0). [#3425](https://github.com/github/codeql-action/pull/3425)
|
- Update default CodeQL bundle version to [2.24.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.0). [#3425](https://github.com/github/codeql-action/pull/3425)
|
||||||
|
|
||||||
## 3.31.11 - 23 Jan 2026
|
## 4.31.11 - 23 Jan 2026
|
||||||
|
|
||||||
- When running a Default Setup workflow with [Actions debugging enabled](https://docs.github.com/en/actions/how-tos/monitor-workflows/enable-debug-logging), the CodeQL Action will now use more unique names when uploading logs from the Dependabot authentication proxy as workflow artifacts. This ensures that the artifact names do not clash between multiple jobs in a build matrix. [#3409](https://github.com/github/codeql-action/pull/3409)
|
- When running a Default Setup workflow with [Actions debugging enabled](https://docs.github.com/en/actions/how-tos/monitor-workflows/enable-debug-logging), the CodeQL Action will now use more unique names when uploading logs from the Dependabot authentication proxy as workflow artifacts. This ensures that the artifact names do not clash between multiple jobs in a build matrix. [#3409](https://github.com/github/codeql-action/pull/3409)
|
||||||
- Improved error handling throughout the CodeQL Action. [#3415](https://github.com/github/codeql-action/pull/3415)
|
- Improved error handling throughout the CodeQL Action. [#3415](https://github.com/github/codeql-action/pull/3415)
|
||||||
- Added experimental support for automatically excluding [generated files](https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github) from the analysis. This feature is not currently enabled for any analysis. In the future, it may be enabled by default for some GitHub-managed analyses. [#3318](https://github.com/github/codeql-action/pull/3318)
|
- Added experimental support for automatically excluding [generated files](https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github) from the analysis. This feature is not currently enabled for any analysis. In the future, it may be enabled by default for some GitHub-managed analyses. [#3318](https://github.com/github/codeql-action/pull/3318)
|
||||||
- The changelog extracts that are included with releases of the CodeQL Action are now shorter to avoid duplicated information from appearing in Dependabot PRs. [#3403](https://github.com/github/codeql-action/pull/3403)
|
- The changelog extracts that are included with releases of the CodeQL Action are now shorter to avoid duplicated information from appearing in Dependabot PRs. [#3403](https://github.com/github/codeql-action/pull/3403)
|
||||||
|
|
||||||
## 3.31.10 - 12 Jan 2026
|
## 4.31.10 - 12 Jan 2026
|
||||||
|
|
||||||
- Update default CodeQL bundle version to 2.23.9. [#3393](https://github.com/github/codeql-action/pull/3393)
|
- Update default CodeQL bundle version to 2.23.9. [#3393](https://github.com/github/codeql-action/pull/3393)
|
||||||
|
|
||||||
## 3.31.9 - 16 Dec 2025
|
## 4.31.9 - 16 Dec 2025
|
||||||
|
|
||||||
No user facing changes.
|
No user facing changes.
|
||||||
|
|
||||||
## 3.31.8 - 11 Dec 2025
|
## 4.31.8 - 11 Dec 2025
|
||||||
|
|
||||||
- Update default CodeQL bundle version to 2.23.8. [#3354](https://github.com/github/codeql-action/pull/3354)
|
- Update default CodeQL bundle version to 2.23.8. [#3354](https://github.com/github/codeql-action/pull/3354)
|
||||||
|
|
||||||
## 3.31.7 - 05 Dec 2025
|
## 4.31.7 - 05 Dec 2025
|
||||||
|
|
||||||
- Update default CodeQL bundle version to 2.23.7. [#3343](https://github.com/github/codeql-action/pull/3343)
|
- Update default CodeQL bundle version to 2.23.7. [#3343](https://github.com/github/codeql-action/pull/3343)
|
||||||
|
|
||||||
## 3.31.6 - 01 Dec 2025
|
## 4.31.6 - 01 Dec 2025
|
||||||
|
|
||||||
No user facing changes.
|
No user facing changes.
|
||||||
|
|
||||||
## 3.31.5 - 24 Nov 2025
|
## 4.31.5 - 24 Nov 2025
|
||||||
|
|
||||||
- Update default CodeQL bundle version to 2.23.6. [#3321](https://github.com/github/codeql-action/pull/3321)
|
- Update default CodeQL bundle version to 2.23.6. [#3321](https://github.com/github/codeql-action/pull/3321)
|
||||||
|
|
||||||
## 3.31.4 - 18 Nov 2025
|
## 4.31.4 - 18 Nov 2025
|
||||||
|
|
||||||
No user facing changes.
|
No user facing changes.
|
||||||
|
|
||||||
## 3.31.3 - 13 Nov 2025
|
## 4.31.3 - 13 Nov 2025
|
||||||
|
|
||||||
- CodeQL Action v3 will be deprecated in December 2026. The Action now logs a warning for customers who are running v3 but could be running v4. For more information, see [Upcoming deprecation of CodeQL Action v3](https://github.blog/changelog/2025-10-28-upcoming-deprecation-of-codeql-action-v3/).
|
- CodeQL Action v3 will be deprecated in December 2026. The Action now logs a warning for customers who are running v3 but could be running v4. For more information, see [Upcoming deprecation of CodeQL Action v3](https://github.blog/changelog/2025-10-28-upcoming-deprecation-of-codeql-action-v3/).
|
||||||
- Update default CodeQL bundle version to 2.23.5. [#3288](https://github.com/github/codeql-action/pull/3288)
|
- Update default CodeQL bundle version to 2.23.5. [#3288](https://github.com/github/codeql-action/pull/3288)
|
||||||
|
|
||||||
## 3.31.2 - 30 Oct 2025
|
## 4.31.2 - 30 Oct 2025
|
||||||
|
|
||||||
No user facing changes.
|
No user facing changes.
|
||||||
|
|
||||||
## 3.31.1 - 30 Oct 2025
|
## 4.31.1 - 30 Oct 2025
|
||||||
|
|
||||||
- The `add-snippets` input has been removed from the `analyze` action. This input has been deprecated since CodeQL Action 3.26.4 in August 2024 when this removal was announced.
|
- The `add-snippets` input has been removed from the `analyze` action. This input has been deprecated since CodeQL Action 3.26.4 in August 2024 when this removal was announced.
|
||||||
|
|
||||||
## 3.31.0 - 24 Oct 2025
|
## 4.31.0 - 24 Oct 2025
|
||||||
|
|
||||||
- Bump minimum CodeQL bundle version to 2.17.6. [#3223](https://github.com/github/codeql-action/pull/3223)
|
- Bump minimum CodeQL bundle version to 2.17.6. [#3223](https://github.com/github/codeql-action/pull/3223)
|
||||||
- When SARIF files are uploaded by the `analyze` or `upload-sarif` actions, the CodeQL Action automatically performs post-processing steps to prepare the data for the upload. Previously, these post-processing steps were only performed before an upload took place. We are now changing this so that the post-processing steps will always be performed, even when the SARIF files are not uploaded. This does not change anything for the `upload-sarif` action. For `analyze`, this may affect Advanced Setup for CodeQL users who specify a value other than `always` for the `upload` input. [#3222](https://github.com/github/codeql-action/pull/3222)
|
- When SARIF files are uploaded by the `analyze` or `upload-sarif` actions, the CodeQL Action automatically performs post-processing steps to prepare the data for the upload. Previously, these post-processing steps were only performed before an upload took place. We are now changing this so that the post-processing steps will always be performed, even when the SARIF files are not uploaded. This does not change anything for the `upload-sarif` action. For `analyze`, this may affect Advanced Setup for CodeQL users who specify a value other than `always` for the `upload` input. [#3222](https://github.com/github/codeql-action/pull/3222)
|
||||||
|
|
||||||
## 3.30.9 - 17 Oct 2025
|
## 4.30.9 - 17 Oct 2025
|
||||||
|
|
||||||
- Update default CodeQL bundle version to 2.23.3. [#3205](https://github.com/github/codeql-action/pull/3205)
|
- Update default CodeQL bundle version to 2.23.3. [#3205](https://github.com/github/codeql-action/pull/3205)
|
||||||
- Experimental: A new `setup-codeql` action has been added which is similar to `init`, except it only installs the CodeQL CLI and does not initialize a database. Do not use this in production as it is part of an internal experiment and subject to change at any time. [#3204](https://github.com/github/codeql-action/pull/3204)
|
- Experimental: A new `setup-codeql` action has been added which is similar to `init`, except it only installs the CodeQL CLI and does not initialize a database. Do not use this in production as it is part of an internal experiment and subject to change at any time. [#3204](https://github.com/github/codeql-action/pull/3204)
|
||||||
|
|
||||||
## 3.30.8 - 10 Oct 2025
|
## 4.30.8 - 10 Oct 2025
|
||||||
|
|
||||||
No user facing changes.
|
No user facing changes.
|
||||||
|
|
||||||
## 3.30.7 - 06 Oct 2025
|
## 4.30.7 - 06 Oct 2025
|
||||||
|
|
||||||
No user facing changes.
|
- [v4+ only] The CodeQL Action now runs on Node.js v24. [#3169](https://github.com/github/codeql-action/pull/3169)
|
||||||
|
|
||||||
## 3.30.6 - 02 Oct 2025
|
## 3.30.6 - 02 Oct 2025
|
||||||
|
|
||||||
@@ -406,13 +411,17 @@ No user facing changes.
|
|||||||
## 3.26.12 - 07 Oct 2024
|
## 3.26.12 - 07 Oct 2024
|
||||||
|
|
||||||
- _Upcoming breaking change_: Add a deprecation warning for customers using CodeQL version 2.14.5 and earlier. These versions of CodeQL were discontinued on 24 September 2024 alongside GitHub Enterprise Server 3.10, and will be unsupported by CodeQL Action versions 3.27.0 and later and versions 2.27.0 and later. [#2520](https://github.com/github/codeql-action/pull/2520)
|
- _Upcoming breaking change_: Add a deprecation warning for customers using CodeQL version 2.14.5 and earlier. These versions of CodeQL were discontinued on 24 September 2024 alongside GitHub Enterprise Server 3.10, and will be unsupported by CodeQL Action versions 3.27.0 and later and versions 2.27.0 and later. [#2520](https://github.com/github/codeql-action/pull/2520)
|
||||||
|
|
||||||
- If you are using one of these versions, please update to CodeQL CLI version 2.14.6 or later. For instance, if you have specified a custom version of the CLI using the 'tools' input to the 'init' Action, you can remove this input to use the default version.
|
- If you are using one of these versions, please update to CodeQL CLI version 2.14.6 or later. For instance, if you have specified a custom version of the CLI using the 'tools' input to the 'init' Action, you can remove this input to use the default version.
|
||||||
|
|
||||||
- Alternatively, if you want to continue using a version of the CodeQL CLI between 2.13.5 and 2.14.5, you can replace `github/codeql-action/*@v3` by `github/codeql-action/*@v3.26.11` and `github/codeql-action/*@v2` by `github/codeql-action/*@v2.26.11` in your code scanning workflow to ensure you continue using this version of the CodeQL Action.
|
- Alternatively, if you want to continue using a version of the CodeQL CLI between 2.13.5 and 2.14.5, you can replace `github/codeql-action/*@v3` by `github/codeql-action/*@v3.26.11` and `github/codeql-action/*@v2` by `github/codeql-action/*@v2.26.11` in your code scanning workflow to ensure you continue using this version of the CodeQL Action.
|
||||||
|
|
||||||
## 3.26.11 - 03 Oct 2024
|
## 3.26.11 - 03 Oct 2024
|
||||||
|
|
||||||
- _Upcoming breaking change_: Add support for using `actions/download-artifact@v4` to programmatically consume CodeQL Action debug artifacts.
|
- _Upcoming breaking change_: Add support for using `actions/download-artifact@v4` to programmatically consume CodeQL Action debug artifacts.
|
||||||
|
|
||||||
Starting November 30, 2024, GitHub.com customers will [no longer be able to use `actions/download-artifact@v3`](https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/). Therefore, to avoid breakage, customers who programmatically download the CodeQL Action debug artifacts should set the `CODEQL_ACTION_ARTIFACT_V4_UPGRADE` environment variable to `true` and bump `actions/download-artifact@v3` to `actions/download-artifact@v4` in their workflows. The CodeQL Action will enable this behavior by default in early November and workflows that have not yet bumped `actions/download-artifact@v3` to `actions/download-artifact@v4` will begin failing then.
|
Starting November 30, 2024, GitHub.com customers will [no longer be able to use `actions/download-artifact@v3`](https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/). Therefore, to avoid breakage, customers who programmatically download the CodeQL Action debug artifacts should set the `CODEQL_ACTION_ARTIFACT_V4_UPGRADE` environment variable to `true` and bump `actions/download-artifact@v3` to `actions/download-artifact@v4` in their workflows. The CodeQL Action will enable this behavior by default in early November and workflows that have not yet bumped `actions/download-artifact@v3` to `actions/download-artifact@v4` will begin failing then.
|
||||||
|
|
||||||
This change is currently unavailable for GitHub Enterprise Server customers, as `actions/upload-artifact@v4` and `actions/download-artifact@v4` are not yet compatible with GHES.
|
This change is currently unavailable for GitHub Enterprise Server customers, as `actions/upload-artifact@v4` and `actions/download-artifact@v4` are not yet compatible with GHES.
|
||||||
- Update default CodeQL bundle version to 2.19.1. [#2519](https://github.com/github/codeql-action/pull/2519)
|
- Update default CodeQL bundle version to 2.19.1. [#2519](https://github.com/github/codeql-action/pull/2519)
|
||||||
|
|
||||||
@@ -535,9 +544,12 @@ No user facing changes.
|
|||||||
## 3.25.0 - 15 Apr 2024
|
## 3.25.0 - 15 Apr 2024
|
||||||
|
|
||||||
- The deprecated feature for extracting dependencies for a Python analysis has been removed. [#2224](https://github.com/github/codeql-action/pull/2224)
|
- The deprecated feature for extracting dependencies for a Python analysis has been removed. [#2224](https://github.com/github/codeql-action/pull/2224)
|
||||||
|
|
||||||
As a result, the following inputs and environment variables are now ignored:
|
As a result, the following inputs and environment variables are now ignored:
|
||||||
|
|
||||||
- The `setup-python-dependencies` input to the `init` Action
|
- The `setup-python-dependencies` input to the `init` Action
|
||||||
- The `CODEQL_ACTION_DISABLE_PYTHON_DEPENDENCY_INSTALLATION` environment variable
|
- The `CODEQL_ACTION_DISABLE_PYTHON_DEPENDENCY_INSTALLATION` environment variable
|
||||||
|
|
||||||
We recommend removing any references to these from your workflows. For more information, see the release notes for CodeQL Action v3.23.0 and v2.23.0.
|
We recommend removing any references to these from your workflows. For more information, see the release notes for CodeQL Action v3.23.0 and v2.23.0.
|
||||||
- Automatically overwrite an existing database if found on the filesystem. [#2229](https://github.com/github/codeql-action/pull/2229)
|
- Automatically overwrite an existing database if found on the filesystem. [#2229](https://github.com/github/codeql-action/pull/2229)
|
||||||
- Bump the minimum CodeQL bundle version to 2.12.6. [#2232](https://github.com/github/codeql-action/pull/2232)
|
- Bump the minimum CodeQL bundle version to 2.12.6. [#2232](https://github.com/github/codeql-action/pull/2232)
|
||||||
|
|||||||
+1
-1
@@ -94,6 +94,6 @@ outputs:
|
|||||||
sarif-id:
|
sarif-id:
|
||||||
description: The ID of the uploaded SARIF file.
|
description: The ID of the uploaded SARIF file.
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node24
|
||||||
main: "../lib/analyze-entry.js"
|
main: "../lib/analyze-entry.js"
|
||||||
post: "../lib/analyze-post-entry.js"
|
post: "../lib/analyze-post-entry.js"
|
||||||
|
|||||||
@@ -15,5 +15,5 @@ inputs:
|
|||||||
$GITHUB_WORKSPACE as its working directory.
|
$GITHUB_WORKSPACE as its working directory.
|
||||||
required: false
|
required: false
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node24
|
||||||
main: '../lib/autobuild-entry.js'
|
main: '../lib/autobuild-entry.js'
|
||||||
|
|||||||
+1
-1
@@ -170,6 +170,6 @@ outputs:
|
|||||||
codeql-version:
|
codeql-version:
|
||||||
description: The version of the CodeQL binary used for analysis
|
description: The version of the CodeQL binary used for analysis
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node24
|
||||||
main: '../lib/init-entry.js'
|
main: '../lib/init-entry.js'
|
||||||
post: '../lib/init-post-entry.js'
|
post: '../lib/init-post-entry.js'
|
||||||
|
|||||||
Generated
+200
-40
@@ -26704,6 +26704,47 @@ var require_coerce = __commonJS({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// node_modules/semver/functions/truncate.js
|
||||||
|
var require_truncate = __commonJS({
|
||||||
|
"node_modules/semver/functions/truncate.js"(exports2, module2) {
|
||||||
|
"use strict";
|
||||||
|
var parse2 = require_parse2();
|
||||||
|
var constants = require_constants6();
|
||||||
|
var SemVer = require_semver();
|
||||||
|
var truncate = (version, truncation, options) => {
|
||||||
|
if (!constants.RELEASE_TYPES.includes(truncation)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const clonedVersion = cloneInputVersion(version, options);
|
||||||
|
return clonedVersion && doTruncation(clonedVersion, truncation);
|
||||||
|
};
|
||||||
|
var cloneInputVersion = (version, options) => {
|
||||||
|
const versionStringToParse = version instanceof SemVer ? version.version : version;
|
||||||
|
return parse2(versionStringToParse, options);
|
||||||
|
};
|
||||||
|
var doTruncation = (version, truncation) => {
|
||||||
|
if (isPrerelease(truncation)) {
|
||||||
|
return version.version;
|
||||||
|
}
|
||||||
|
version.prerelease = [];
|
||||||
|
switch (truncation) {
|
||||||
|
case "major":
|
||||||
|
version.minor = 0;
|
||||||
|
version.patch = 0;
|
||||||
|
break;
|
||||||
|
case "minor":
|
||||||
|
version.patch = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return version.format();
|
||||||
|
};
|
||||||
|
var isPrerelease = (type2) => {
|
||||||
|
return type2.startsWith("pre");
|
||||||
|
};
|
||||||
|
module2.exports = truncate;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// node_modules/semver/internal/lrucache.js
|
// node_modules/semver/internal/lrucache.js
|
||||||
var require_lrucache = __commonJS({
|
var require_lrucache = __commonJS({
|
||||||
"node_modules/semver/internal/lrucache.js"(exports2, module2) {
|
"node_modules/semver/internal/lrucache.js"(exports2, module2) {
|
||||||
@@ -27738,6 +27779,7 @@ var require_semver2 = __commonJS({
|
|||||||
var lte = require_lte();
|
var lte = require_lte();
|
||||||
var cmp = require_cmp();
|
var cmp = require_cmp();
|
||||||
var coerce3 = require_coerce();
|
var coerce3 = require_coerce();
|
||||||
|
var truncate = require_truncate();
|
||||||
var Comparator = require_comparator();
|
var Comparator = require_comparator();
|
||||||
var Range2 = require_range();
|
var Range2 = require_range();
|
||||||
var satisfies2 = require_satisfies();
|
var satisfies2 = require_satisfies();
|
||||||
@@ -27776,6 +27818,7 @@ var require_semver2 = __commonJS({
|
|||||||
lte,
|
lte,
|
||||||
cmp,
|
cmp,
|
||||||
coerce: coerce3,
|
coerce: coerce3,
|
||||||
|
truncate,
|
||||||
Comparator,
|
Comparator,
|
||||||
Range: Range2,
|
Range: Range2,
|
||||||
satisfies: satisfies2,
|
satisfies: satisfies2,
|
||||||
@@ -124988,7 +125031,7 @@ var require_tmp = __commonJS({
|
|||||||
cb(null, path28.join(parentDir, path28.basename(pathToResolve)));
|
cb(null, path28.join(parentDir, path28.basename(pathToResolve)));
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
fs30.realpath(path28, cb);
|
fs30.realpath(pathToResolve, cb);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -125020,16 +125063,31 @@ var require_tmp = __commonJS({
|
|||||||
].join("");
|
].join("");
|
||||||
return path28.join(tmpDir, opts.dir, name);
|
return path28.join(tmpDir, opts.dir, name);
|
||||||
}
|
}
|
||||||
|
function _assertPath(option, value) {
|
||||||
|
if (typeof value !== "string") {
|
||||||
|
throw new Error(`${option} option must be a string, got "${typeof value}".`);
|
||||||
|
}
|
||||||
|
if (value.includes("..")) {
|
||||||
|
throw new Error("Relative value not allowed");
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
function _assertOptionsBase(options) {
|
function _assertOptionsBase(options) {
|
||||||
if (!_isUndefined(options.name)) {
|
if (!_isUndefined(options.name)) {
|
||||||
const name = options.name;
|
const name = options.name;
|
||||||
if (path28.isAbsolute(name)) throw new Error(`name option must not contain an absolute path, found "${name}".`);
|
if (path28.isAbsolute(name)) throw new Error(`name option must not contain an absolute path, found "${name}".`);
|
||||||
const basename2 = path28.basename(name);
|
const basename2 = path28.basename(name);
|
||||||
if (basename2 === ".." || basename2 === "." || basename2 !== name)
|
if (basename2 === ".." || basename2 === "." || basename2 !== name) {
|
||||||
throw new Error(`name option must not contain a path, found "${name}".`);
|
throw new Error(`name option must not contain a path, found "${name}".`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!_isUndefined(options.template) && !options.template.match(TEMPLATE_PATTERN)) {
|
if (!_isUndefined(options.template)) {
|
||||||
throw new Error(`Invalid template, found "${options.template}".`);
|
if (typeof options.template !== "string") {
|
||||||
|
throw new Error(`template option must be a string, got "${typeof options.template}".`);
|
||||||
|
}
|
||||||
|
if (!options.template.match(TEMPLATE_PATTERN)) {
|
||||||
|
throw new Error(`Invalid template, found "${options.template}".`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!_isUndefined(options.tries) && isNaN(options.tries) || options.tries < 0) {
|
if (!_isUndefined(options.tries) && isNaN(options.tries) || options.tries < 0) {
|
||||||
throw new Error(`Invalid tries, found "${options.tries}".`);
|
throw new Error(`Invalid tries, found "${options.tries}".`);
|
||||||
@@ -125039,15 +125097,16 @@ var require_tmp = __commonJS({
|
|||||||
options.detachDescriptor = !!options.detachDescriptor;
|
options.detachDescriptor = !!options.detachDescriptor;
|
||||||
options.discardDescriptor = !!options.discardDescriptor;
|
options.discardDescriptor = !!options.discardDescriptor;
|
||||||
options.unsafeCleanup = !!options.unsafeCleanup;
|
options.unsafeCleanup = !!options.unsafeCleanup;
|
||||||
options.prefix = _isUndefined(options.prefix) ? "" : options.prefix;
|
options.prefix = _isUndefined(options.prefix) ? "" : _assertPath("prefix", options.prefix);
|
||||||
options.postfix = _isUndefined(options.postfix) ? "" : options.postfix;
|
options.postfix = _isUndefined(options.postfix) ? "" : _assertPath("postfix", options.postfix);
|
||||||
|
options.template = _isUndefined(options.template) ? void 0 : _assertPath("template", options.template);
|
||||||
}
|
}
|
||||||
function _getRelativePath(option, name, tmpDir, cb) {
|
function _getRelativePath(option, name, tmpDir, cb) {
|
||||||
if (_isUndefined(name)) return cb(null);
|
if (_isUndefined(name)) return cb(null);
|
||||||
_resolvePath(name, tmpDir, function(err, resolvedPath) {
|
_resolvePath(name, tmpDir, function(err, resolvedPath) {
|
||||||
if (err) return cb(err);
|
if (err) return cb(err);
|
||||||
const relativePath = path28.relative(tmpDir, resolvedPath);
|
const relativePath = path28.relative(tmpDir, resolvedPath);
|
||||||
if (!resolvedPath.startsWith(tmpDir)) {
|
if (relativePath.startsWith("..") || path28.isAbsolute(relativePath)) {
|
||||||
return cb(new Error(`${option} option must be relative to "${tmpDir}", found "${relativePath}".`));
|
return cb(new Error(`${option} option must be relative to "${tmpDir}", found "${relativePath}".`));
|
||||||
}
|
}
|
||||||
cb(null, relativePath);
|
cb(null, relativePath);
|
||||||
@@ -125057,7 +125116,7 @@ var require_tmp = __commonJS({
|
|||||||
if (_isUndefined(name)) return;
|
if (_isUndefined(name)) return;
|
||||||
const resolvedPath = _resolvePathSync(name, tmpDir);
|
const resolvedPath = _resolvePathSync(name, tmpDir);
|
||||||
const relativePath = path28.relative(tmpDir, resolvedPath);
|
const relativePath = path28.relative(tmpDir, resolvedPath);
|
||||||
if (!resolvedPath.startsWith(tmpDir)) {
|
if (relativePath.startsWith("..") || path28.isAbsolute(relativePath)) {
|
||||||
throw new Error(`${option} option must be relative to "${tmpDir}", found "${relativePath}".`);
|
throw new Error(`${option} option must be relative to "${tmpDir}", found "${relativePath}".`);
|
||||||
}
|
}
|
||||||
return relativePath;
|
return relativePath;
|
||||||
@@ -147623,7 +147682,7 @@ var safeDump = renamed("safeDump", "dump");
|
|||||||
var semver = __toESM(require_semver2());
|
var semver = __toESM(require_semver2());
|
||||||
|
|
||||||
// src/api-compatibility.json
|
// src/api-compatibility.json
|
||||||
var maximumVersion = "3.21";
|
var maximumVersion = "3.22";
|
||||||
var minimumVersion = "3.16";
|
var minimumVersion = "3.16";
|
||||||
|
|
||||||
// src/json/index.ts
|
// src/json/index.ts
|
||||||
@@ -148307,7 +148366,7 @@ function getDiffRangesJsonFilePath() {
|
|||||||
return path2.join(getTemporaryDirectory(), PR_DIFF_RANGE_JSON_FILENAME);
|
return path2.join(getTemporaryDirectory(), PR_DIFF_RANGE_JSON_FILENAME);
|
||||||
}
|
}
|
||||||
function getActionVersion() {
|
function getActionVersion() {
|
||||||
return "3.36.0";
|
return "4.36.1";
|
||||||
}
|
}
|
||||||
function getWorkflowEventName() {
|
function getWorkflowEventName() {
|
||||||
return getRequiredEnvParam("GITHUB_EVENT_NAME");
|
return getRequiredEnvParam("GITHUB_EVENT_NAME");
|
||||||
@@ -150351,11 +150410,14 @@ function getUnknownLanguagesError(languages) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// src/feature-flags/properties.ts
|
// src/feature-flags/properties.ts
|
||||||
|
var github2 = __toESM(require_github());
|
||||||
var GITHUB_CODEQL_PROPERTY_PREFIX = "github-codeql-";
|
var GITHUB_CODEQL_PROPERTY_PREFIX = "github-codeql-";
|
||||||
var RepositoryPropertyName = /* @__PURE__ */ ((RepositoryPropertyName2) => {
|
var RepositoryPropertyName = /* @__PURE__ */ ((RepositoryPropertyName2) => {
|
||||||
RepositoryPropertyName2["DISABLE_OVERLAY"] = "github-codeql-disable-overlay";
|
RepositoryPropertyName2["DISABLE_OVERLAY"] = "github-codeql-disable-overlay";
|
||||||
RepositoryPropertyName2["EXTRA_QUERIES"] = "github-codeql-extra-queries";
|
RepositoryPropertyName2["EXTRA_QUERIES"] = "github-codeql-extra-queries";
|
||||||
RepositoryPropertyName2["FILE_COVERAGE_ON_PRS"] = "github-codeql-file-coverage-on-prs";
|
RepositoryPropertyName2["FILE_COVERAGE_ON_PRS"] = "github-codeql-file-coverage-on-prs";
|
||||||
|
RepositoryPropertyName2["TOOLS"] = "github-codeql-tools";
|
||||||
|
RepositoryPropertyName2["TOOLS_MODE"] = "github-codeql-tools-mode";
|
||||||
return RepositoryPropertyName2;
|
return RepositoryPropertyName2;
|
||||||
})(RepositoryPropertyName || {});
|
})(RepositoryPropertyName || {});
|
||||||
function isString2(value) {
|
function isString2(value) {
|
||||||
@@ -150373,7 +150435,12 @@ var booleanProperty = {
|
|||||||
var repositoryPropertyParsers = {
|
var repositoryPropertyParsers = {
|
||||||
["github-codeql-disable-overlay" /* DISABLE_OVERLAY */]: booleanProperty,
|
["github-codeql-disable-overlay" /* DISABLE_OVERLAY */]: booleanProperty,
|
||||||
["github-codeql-extra-queries" /* EXTRA_QUERIES */]: stringProperty,
|
["github-codeql-extra-queries" /* EXTRA_QUERIES */]: stringProperty,
|
||||||
["github-codeql-file-coverage-on-prs" /* FILE_COVERAGE_ON_PRS */]: booleanProperty
|
["github-codeql-file-coverage-on-prs" /* FILE_COVERAGE_ON_PRS */]: booleanProperty,
|
||||||
|
["github-codeql-tools" /* TOOLS */]: stringProperty,
|
||||||
|
["github-codeql-tools-mode" /* TOOLS_MODE */]: {
|
||||||
|
validate: isString2,
|
||||||
|
parse: parseToolsModeRepositoryProperty
|
||||||
|
}
|
||||||
};
|
};
|
||||||
async function loadPropertiesFromApi(logger, repositoryNwo) {
|
async function loadPropertiesFromApi(logger, repositoryNwo) {
|
||||||
try {
|
try {
|
||||||
@@ -150426,6 +150493,26 @@ async function loadPropertiesFromApi(logger, repositoryNwo) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
async function loadRepositoryProperties(repositoryNwo, logger) {
|
||||||
|
const repositoryOwnerType = github2.context.payload.repository?.owner.type;
|
||||||
|
logger.debug(
|
||||||
|
`Repository owner type is '${repositoryOwnerType ?? "unknown"}'.`
|
||||||
|
);
|
||||||
|
if (repositoryOwnerType === "User") {
|
||||||
|
logger.debug(
|
||||||
|
"Skipping loading repository properties because the repository is owned by a user and therefore cannot have repository properties."
|
||||||
|
);
|
||||||
|
return new Success({});
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return new Success(await loadPropertiesFromApi(logger, repositoryNwo));
|
||||||
|
} catch (error3) {
|
||||||
|
logger.info(
|
||||||
|
`Failed to load repository properties: ${getErrorMessage(error3)}`
|
||||||
|
);
|
||||||
|
return new Failure(error3);
|
||||||
|
}
|
||||||
|
}
|
||||||
function setProperty2(properties, name, value, logger) {
|
function setProperty2(properties, name, value, logger) {
|
||||||
const propertyOptions = repositoryPropertyParsers[name];
|
const propertyOptions = repositoryPropertyParsers[name];
|
||||||
if (propertyOptions.validate(value)) {
|
if (propertyOptions.validate(value)) {
|
||||||
@@ -150447,6 +150534,15 @@ function parseBooleanRepositoryProperty(name, value, logger) {
|
|||||||
function parseStringRepositoryProperty(_name, value) {
|
function parseStringRepositoryProperty(_name, value) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
function parseToolsModeRepositoryProperty(name, value, logger) {
|
||||||
|
if (value !== "dynamic" /* Dynamic */ && value !== "enforce" /* Enforce */) {
|
||||||
|
logger.warning(
|
||||||
|
`Repository property '${name}' has unexpected value '${value}'. Expected 'dynamic' or 'enforce'. Defaulting to 'enforce'.`
|
||||||
|
);
|
||||||
|
return "enforce" /* Enforce */;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
var KNOWN_REPOSITORY_PROPERTY_NAMES = new Set(
|
var KNOWN_REPOSITORY_PROPERTY_NAMES = new Set(
|
||||||
Object.values(RepositoryPropertyName)
|
Object.values(RepositoryPropertyName)
|
||||||
);
|
);
|
||||||
@@ -153317,7 +153413,7 @@ async function getCodeQLSource(toolsInput, defaultCliVersion, rawLanguages, useO
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
if (allowToolcacheValueFF) {
|
if (allowToolcacheValueFF) {
|
||||||
logger.warning(
|
logger.info(
|
||||||
`Ignoring 'tools: ${toolsInput}' because the workflow was not triggered dynamically.`
|
`Ignoring 'tools: ${toolsInput}' because the workflow was not triggered dynamically.`
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -156658,7 +156754,7 @@ var fs19 = __toESM(require("fs"));
|
|||||||
var path17 = __toESM(require("path"));
|
var path17 = __toESM(require("path"));
|
||||||
var core14 = __toESM(require_core());
|
var core14 = __toESM(require_core());
|
||||||
var toolrunner4 = __toESM(require_toolrunner());
|
var toolrunner4 = __toESM(require_toolrunner());
|
||||||
var github2 = __toESM(require_github());
|
var github3 = __toESM(require_github());
|
||||||
var io6 = __toESM(require_io());
|
var io6 = __toESM(require_io());
|
||||||
async function initCodeQL(toolsInput, apiDetails, tempDir, variant, defaultCliVersion, rawLanguages, useOverlayAwareDefaultCliVersion, features, logger) {
|
async function initCodeQL(toolsInput, apiDetails, tempDir, variant, defaultCliVersion, rawLanguages, useOverlayAwareDefaultCliVersion, features, logger) {
|
||||||
logger.startGroup("Setup CodeQL tools");
|
logger.startGroup("Setup CodeQL tools");
|
||||||
@@ -156862,7 +156958,7 @@ function logFileCoverageOnPrsDeprecationWarning(logger) {
|
|||||||
if (process.env["CODEQL_ACTION_DID_LOG_FILE_COVERAGE_ON_PRS_DEPRECATION" /* DID_LOG_FILE_COVERAGE_ON_PRS_DEPRECATION */]) {
|
if (process.env["CODEQL_ACTION_DID_LOG_FILE_COVERAGE_ON_PRS_DEPRECATION" /* DID_LOG_FILE_COVERAGE_ON_PRS_DEPRECATION */]) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const repositoryOwnerType = github2.context.payload.repository?.owner.type;
|
const repositoryOwnerType = github3.context.payload.repository?.owner.type;
|
||||||
let message = "Starting April 2026, the CodeQL Action will skip computing file coverage information on pull requests to improve analysis performance. File coverage information will still be computed on non-PR analyses.";
|
let message = "Starting April 2026, the CodeQL Action will skip computing file coverage information on pull requests to improve analysis performance. File coverage information will still be computed on non-PR analyses.";
|
||||||
const envVarOptOut = "set the `CODEQL_ACTION_FILE_COVERAGE_ON_PRS` environment variable to `true`.";
|
const envVarOptOut = "set the `CODEQL_ACTION_FILE_COVERAGE_ON_PRS` environment variable to `true`.";
|
||||||
const repoPropertyOptOut = 'create a custom repository property with the name `github-codeql-file-coverage-on-prs` and the type "True/false", then set this property to `true` in the repository\'s settings.';
|
const repoPropertyOptOut = 'create a custom repository property with the name `github-codeql-file-coverage-on-prs` and the type "True/false", then set this property to `true` in the repository\'s settings.';
|
||||||
@@ -158646,10 +158742,50 @@ async function runWrapper3() {
|
|||||||
var fs27 = __toESM(require("fs"));
|
var fs27 = __toESM(require("fs"));
|
||||||
var path23 = __toESM(require("path"));
|
var path23 = __toESM(require("path"));
|
||||||
var core21 = __toESM(require_core());
|
var core21 = __toESM(require_core());
|
||||||
var github3 = __toESM(require_github());
|
|
||||||
var io7 = __toESM(require_io());
|
var io7 = __toESM(require_io());
|
||||||
var semver10 = __toESM(require_semver2());
|
var semver10 = __toESM(require_semver2());
|
||||||
|
|
||||||
|
// src/config/resolve-tools-input.ts
|
||||||
|
function resolveToolsInputWithMetadata(toolsWorkflowInput, isDynamicWorkflow2, repositoryProperties, logger) {
|
||||||
|
if (toolsWorkflowInput) {
|
||||||
|
logger.info(
|
||||||
|
`Setting tools: ${toolsWorkflowInput} based on workflow input.`
|
||||||
|
);
|
||||||
|
return {
|
||||||
|
effectiveToolsInput: toolsWorkflowInput,
|
||||||
|
effectiveToolsInputSource: "workflow-input" /* WorkflowInput */,
|
||||||
|
toolsRepoPropertyMode: void 0
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const toolsPropertyValue = repositoryProperties["github-codeql-tools" /* TOOLS */];
|
||||||
|
const toolsMode = repositoryProperties["github-codeql-tools-mode" /* TOOLS_MODE */] ?? "enforce" /* Enforce */;
|
||||||
|
if (toolsPropertyValue && toolsMode === "dynamic" /* Dynamic */ && !isDynamicWorkflow2) {
|
||||||
|
logger.info(
|
||||||
|
`Ignoring '${"github-codeql-tools" /* TOOLS */}' repository property because '${"github-codeql-tools-mode" /* TOOLS_MODE */}' is set to '${toolsMode}' and this is not a dynamic workflow.`
|
||||||
|
);
|
||||||
|
return {
|
||||||
|
effectiveToolsInput: void 0,
|
||||||
|
effectiveToolsInputSource: "none" /* None */,
|
||||||
|
toolsRepoPropertyMode: toolsMode
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (toolsPropertyValue) {
|
||||||
|
logger.info(
|
||||||
|
`Setting tools: ${toolsPropertyValue} based on the '${"github-codeql-tools" /* TOOLS */}' repository property (mode: '${toolsMode}').`
|
||||||
|
);
|
||||||
|
return {
|
||||||
|
effectiveToolsInput: toolsPropertyValue,
|
||||||
|
effectiveToolsInputSource: "repository-property" /* RepositoryProperty */,
|
||||||
|
toolsRepoPropertyMode: toolsMode
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
effectiveToolsInput: void 0,
|
||||||
|
effectiveToolsInputSource: "none" /* None */,
|
||||||
|
toolsRepoPropertyMode: void 0
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// src/workflow.ts
|
// src/workflow.ts
|
||||||
var fs26 = __toESM(require("fs"));
|
var fs26 = __toESM(require("fs"));
|
||||||
var path22 = __toESM(require("path"));
|
var path22 = __toESM(require("path"));
|
||||||
@@ -158940,7 +159076,7 @@ async function sendStartingStatusReport(startedAt, config, logger) {
|
|||||||
await sendStatusReport(statusReportBase);
|
await sendStatusReport(statusReportBase);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async function sendCompletedStatusReport2(startedAt, config, configFile, toolsDownloadStatusReport, toolsFeatureFlagsValid, toolsSource, toolsVersion, overlayBaseDatabaseStats, dependencyCachingResults, logger, error3) {
|
async function sendCompletedStatusReport2(startedAt, config, configFile, toolsDownloadStatusReport, toolsFeatureFlagsValid, toolsSource, toolsVersion, effectiveToolsInput, effectiveToolsInputSource, toolsRepoPropertyMode, overlayBaseDatabaseStats, dependencyCachingResults, logger, error3) {
|
||||||
const statusReportBase = await createStatusReportBase(
|
const statusReportBase = await createStatusReportBase(
|
||||||
"init" /* Init */,
|
"init" /* Init */,
|
||||||
getActionsStatus(error3),
|
getActionsStatus(error3),
|
||||||
@@ -158958,6 +159094,9 @@ async function sendCompletedStatusReport2(startedAt, config, configFile, toolsDo
|
|||||||
const initStatusReport = {
|
const initStatusReport = {
|
||||||
...statusReportBase,
|
...statusReportBase,
|
||||||
tools_input: getOptionalInput("tools") || "",
|
tools_input: getOptionalInput("tools") || "",
|
||||||
|
effective_tools_input: effectiveToolsInput || "",
|
||||||
|
effective_tools_input_source: effectiveToolsInputSource,
|
||||||
|
tools_repo_property_mode: toolsRepoPropertyMode || "",
|
||||||
tools_resolved_version: toolsVersion,
|
tools_resolved_version: toolsVersion,
|
||||||
tools_source: toolsSource || "UNKNOWN" /* Unknown */,
|
tools_source: toolsSource || "UNKNOWN" /* Unknown */,
|
||||||
workflow_languages: workflowLanguages || ""
|
workflow_languages: workflowLanguages || ""
|
||||||
@@ -159001,6 +159140,9 @@ async function run3(startedAt) {
|
|||||||
let toolsSource;
|
let toolsSource;
|
||||||
let toolsVersion;
|
let toolsVersion;
|
||||||
let zstdAvailability;
|
let zstdAvailability;
|
||||||
|
let effectiveToolsInput;
|
||||||
|
let effectiveToolsInputSource = "none" /* None */;
|
||||||
|
let toolsRepoPropertyMode;
|
||||||
try {
|
try {
|
||||||
initializeEnvironment(getActionVersion());
|
initializeEnvironment(getActionVersion());
|
||||||
persistInputs();
|
persistInputs();
|
||||||
@@ -159024,6 +159166,7 @@ async function run3(startedAt) {
|
|||||||
repositoryNwo,
|
repositoryNwo,
|
||||||
logger
|
logger
|
||||||
);
|
);
|
||||||
|
const repositoryProperties = repositoryPropertiesResult.orElse({});
|
||||||
const jobRunUuid = v4_default();
|
const jobRunUuid = v4_default();
|
||||||
logger.info(`Job run UUID is ${jobRunUuid}.`);
|
logger.info(`Job run UUID is ${jobRunUuid}.`);
|
||||||
core21.exportVariable("JOB_RUN_UUID" /* JOB_RUN_UUID */, jobRunUuid);
|
core21.exportVariable("JOB_RUN_UUID" /* JOB_RUN_UUID */, jobRunUuid);
|
||||||
@@ -159049,12 +159192,21 @@ async function run3(startedAt) {
|
|||||||
}
|
}
|
||||||
const codeQLDefaultVersionInfo = await features.getEnabledDefaultCliVersions(gitHubVersion.type);
|
const codeQLDefaultVersionInfo = await features.getEnabledDefaultCliVersions(gitHubVersion.type);
|
||||||
toolsFeatureFlagsValid = codeQLDefaultVersionInfo.toolsFeatureFlagsValid;
|
toolsFeatureFlagsValid = codeQLDefaultVersionInfo.toolsFeatureFlagsValid;
|
||||||
|
const resolvedToolsInput = resolveToolsInputWithMetadata(
|
||||||
|
getOptionalInput("tools"),
|
||||||
|
isDynamicWorkflow(),
|
||||||
|
repositoryProperties,
|
||||||
|
logger
|
||||||
|
);
|
||||||
|
effectiveToolsInput = resolvedToolsInput.effectiveToolsInput;
|
||||||
|
effectiveToolsInputSource = resolvedToolsInput.effectiveToolsInputSource;
|
||||||
|
toolsRepoPropertyMode = resolvedToolsInput.toolsRepoPropertyMode;
|
||||||
const rawLanguages = getRawLanguagesNoAutodetect(
|
const rawLanguages = getRawLanguagesNoAutodetect(
|
||||||
getOptionalInput("languages")
|
getOptionalInput("languages")
|
||||||
);
|
);
|
||||||
const useOverlayAwareDefaultCliVersion = analysisKinds?.length === 1 && analysisKinds[0] === "code-scanning" /* CodeScanning */;
|
const useOverlayAwareDefaultCliVersion = analysisKinds?.length === 1 && analysisKinds[0] === "code-scanning" /* CodeScanning */;
|
||||||
const initCodeQLResult = await initCodeQL(
|
const initCodeQLResult = await initCodeQL(
|
||||||
getOptionalInput("tools"),
|
effectiveToolsInput,
|
||||||
apiDetails,
|
apiDetails,
|
||||||
getTemporaryDirectory(),
|
getTemporaryDirectory(),
|
||||||
gitHubVersion.type,
|
gitHubVersion.type,
|
||||||
@@ -159090,7 +159242,6 @@ async function run3(startedAt) {
|
|||||||
}
|
}
|
||||||
analysisKinds = await getAnalysisKinds(logger, features);
|
analysisKinds = await getAnalysisKinds(logger, features);
|
||||||
const debugMode = getOptionalInput("debug") === "true" || core21.isDebug();
|
const debugMode = getOptionalInput("debug") === "true" || core21.isDebug();
|
||||||
const repositoryProperties = repositoryPropertiesResult.orElse({});
|
|
||||||
const fileCoverageResult = await getFileCoverageInformationEnabled(
|
const fileCoverageResult = await getFileCoverageInformationEnabled(
|
||||||
debugMode,
|
debugMode,
|
||||||
codeql,
|
codeql,
|
||||||
@@ -159388,6 +159539,9 @@ exec ${goBinaryPath} "$@"`
|
|||||||
toolsFeatureFlagsValid,
|
toolsFeatureFlagsValid,
|
||||||
toolsSource,
|
toolsSource,
|
||||||
toolsVersion,
|
toolsVersion,
|
||||||
|
effectiveToolsInput,
|
||||||
|
effectiveToolsInputSource,
|
||||||
|
toolsRepoPropertyMode,
|
||||||
overlayBaseDatabaseStats,
|
overlayBaseDatabaseStats,
|
||||||
dependencyCachingStatus,
|
dependencyCachingStatus,
|
||||||
logger,
|
logger,
|
||||||
@@ -159405,31 +159559,14 @@ exec ${goBinaryPath} "$@"`
|
|||||||
toolsFeatureFlagsValid,
|
toolsFeatureFlagsValid,
|
||||||
toolsSource,
|
toolsSource,
|
||||||
toolsVersion,
|
toolsVersion,
|
||||||
|
effectiveToolsInput,
|
||||||
|
effectiveToolsInputSource,
|
||||||
|
toolsRepoPropertyMode,
|
||||||
overlayBaseDatabaseStats,
|
overlayBaseDatabaseStats,
|
||||||
dependencyCachingStatus,
|
dependencyCachingStatus,
|
||||||
logger
|
logger
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
async function loadRepositoryProperties(repositoryNwo, logger) {
|
|
||||||
const repositoryOwnerType = github3.context.payload.repository?.owner.type;
|
|
||||||
logger.debug(
|
|
||||||
`Repository owner type is '${repositoryOwnerType ?? "unknown"}'.`
|
|
||||||
);
|
|
||||||
if (repositoryOwnerType === "User") {
|
|
||||||
logger.debug(
|
|
||||||
"Skipping loading repository properties because the repository is owned by a user and therefore cannot have repository properties."
|
|
||||||
);
|
|
||||||
return new Success({});
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
return new Success(await loadPropertiesFromApi(logger, repositoryNwo));
|
|
||||||
} catch (error3) {
|
|
||||||
logger.warning(
|
|
||||||
`Failed to load repository properties: ${getErrorMessage(error3)}`
|
|
||||||
);
|
|
||||||
return new Failure(error3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
async function recordZstdAvailability(config, zstdAvailability) {
|
async function recordZstdAvailability(config, zstdAvailability) {
|
||||||
addNoLanguageDiagnostic(
|
addNoLanguageDiagnostic(
|
||||||
config,
|
config,
|
||||||
@@ -159998,7 +160135,7 @@ async function runWrapper6() {
|
|||||||
|
|
||||||
// src/setup-codeql-action.ts
|
// src/setup-codeql-action.ts
|
||||||
var core24 = __toESM(require_core());
|
var core24 = __toESM(require_core());
|
||||||
async function sendCompletedStatusReport3(startedAt, toolsDownloadStatusReport, toolsFeatureFlagsValid, toolsSource, toolsVersion, logger, error3) {
|
async function sendCompletedStatusReport3(startedAt, toolsDownloadStatusReport, toolsFeatureFlagsValid, toolsSource, toolsVersion, effectiveToolsInput, effectiveToolsInputSource, toolsRepoPropertyMode, logger, error3) {
|
||||||
const statusReportBase = await createStatusReportBase(
|
const statusReportBase = await createStatusReportBase(
|
||||||
"setup-codeql" /* SetupCodeQL */,
|
"setup-codeql" /* SetupCodeQL */,
|
||||||
getActionsStatus(error3),
|
getActionsStatus(error3),
|
||||||
@@ -160015,6 +160152,9 @@ async function sendCompletedStatusReport3(startedAt, toolsDownloadStatusReport,
|
|||||||
const initStatusReport = {
|
const initStatusReport = {
|
||||||
...statusReportBase,
|
...statusReportBase,
|
||||||
tools_input: getOptionalInput("tools") || "",
|
tools_input: getOptionalInput("tools") || "",
|
||||||
|
effective_tools_input: effectiveToolsInput || "",
|
||||||
|
effective_tools_input_source: effectiveToolsInputSource,
|
||||||
|
tools_repo_property_mode: toolsRepoPropertyMode || "",
|
||||||
tools_resolved_version: toolsVersion,
|
tools_resolved_version: toolsVersion,
|
||||||
tools_source: toolsSource || "UNKNOWN" /* Unknown */,
|
tools_source: toolsSource || "UNKNOWN" /* Unknown */,
|
||||||
workflow_languages: ""
|
workflow_languages: ""
|
||||||
@@ -160035,6 +160175,9 @@ async function run6(startedAt) {
|
|||||||
let toolsFeatureFlagsValid;
|
let toolsFeatureFlagsValid;
|
||||||
let toolsSource;
|
let toolsSource;
|
||||||
let toolsVersion;
|
let toolsVersion;
|
||||||
|
let effectiveToolsInput;
|
||||||
|
let effectiveToolsInputSource = "none" /* None */;
|
||||||
|
let toolsRepoPropertyMode;
|
||||||
try {
|
try {
|
||||||
initializeEnvironment(getActionVersion());
|
initializeEnvironment(getActionVersion());
|
||||||
const apiDetails = {
|
const apiDetails = {
|
||||||
@@ -160069,12 +160212,26 @@ async function run6(startedAt) {
|
|||||||
}
|
}
|
||||||
const codeQLDefaultVersionInfo = await features.getEnabledDefaultCliVersions(gitHubVersion.type);
|
const codeQLDefaultVersionInfo = await features.getEnabledDefaultCliVersions(gitHubVersion.type);
|
||||||
toolsFeatureFlagsValid = codeQLDefaultVersionInfo.toolsFeatureFlagsValid;
|
toolsFeatureFlagsValid = codeQLDefaultVersionInfo.toolsFeatureFlagsValid;
|
||||||
|
const repositoryPropertiesResult = await loadRepositoryProperties(
|
||||||
|
repositoryNwo,
|
||||||
|
logger
|
||||||
|
);
|
||||||
|
const repositoryProperties = repositoryPropertiesResult.orElse({});
|
||||||
|
const resolvedToolsInput = resolveToolsInputWithMetadata(
|
||||||
|
getOptionalInput("tools"),
|
||||||
|
isDynamicWorkflow(),
|
||||||
|
repositoryProperties,
|
||||||
|
logger
|
||||||
|
);
|
||||||
|
effectiveToolsInput = resolvedToolsInput.effectiveToolsInput;
|
||||||
|
effectiveToolsInputSource = resolvedToolsInput.effectiveToolsInputSource;
|
||||||
|
toolsRepoPropertyMode = resolvedToolsInput.toolsRepoPropertyMode;
|
||||||
const rawLanguages = getRawLanguagesNoAutodetect(
|
const rawLanguages = getRawLanguagesNoAutodetect(
|
||||||
getOptionalInput("languages")
|
getOptionalInput("languages")
|
||||||
);
|
);
|
||||||
const analysisKinds = await getAnalysisKinds(logger, features);
|
const analysisKinds = await getAnalysisKinds(logger, features);
|
||||||
const initCodeQLResult = await initCodeQL(
|
const initCodeQLResult = await initCodeQL(
|
||||||
getOptionalInput("tools"),
|
effectiveToolsInput,
|
||||||
apiDetails,
|
apiDetails,
|
||||||
getTemporaryDirectory(),
|
getTemporaryDirectory(),
|
||||||
gitHubVersion.type,
|
gitHubVersion.type,
|
||||||
@@ -160115,6 +160272,9 @@ async function run6(startedAt) {
|
|||||||
toolsFeatureFlagsValid,
|
toolsFeatureFlagsValid,
|
||||||
toolsSource,
|
toolsSource,
|
||||||
toolsVersion,
|
toolsVersion,
|
||||||
|
effectiveToolsInput,
|
||||||
|
effectiveToolsInputSource,
|
||||||
|
toolsRepoPropertyMode,
|
||||||
logger
|
logger
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+93
-578
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "codeql",
|
"name": "codeql",
|
||||||
"version": "4.36.0",
|
"version": "4.36.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "codeql",
|
"name": "codeql",
|
||||||
"version": "4.36.0",
|
"version": "4.36.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"pr-checks"
|
"pr-checks"
|
||||||
@@ -32,18 +32,18 @@
|
|||||||
"jsonschema": "1.5.0",
|
"jsonschema": "1.5.0",
|
||||||
"long": "^5.3.2",
|
"long": "^5.3.2",
|
||||||
"node-forge": "^1.4.0",
|
"node-forge": "^1.4.0",
|
||||||
"semver": "^7.7.4",
|
"semver": "^7.8.0",
|
||||||
"uuid": "^14.0.0"
|
"uuid": "^14.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@ava/typescript": "6.0.0",
|
"@ava/typescript": "6.0.0",
|
||||||
"@eslint/compat": "^2.0.5",
|
"@eslint/compat": "^2.1.0",
|
||||||
"@microsoft/eslint-formatter-sarif": "^3.1.0",
|
"@microsoft/eslint-formatter-sarif": "^3.1.0",
|
||||||
"@octokit/types": "^16.0.0",
|
"@octokit/types": "^16.0.0",
|
||||||
"@types/archiver": "^7.0.0",
|
"@types/archiver": "^7.0.0",
|
||||||
"@types/follow-redirects": "^1.14.4",
|
"@types/follow-redirects": "^1.14.4",
|
||||||
"@types/js-yaml": "^4.0.9",
|
"@types/js-yaml": "^4.0.9",
|
||||||
"@types/node": "^20.19.39",
|
"@types/node": "^20.19.41",
|
||||||
"@types/node-forge": "^1.3.14",
|
"@types/node-forge": "^1.3.14",
|
||||||
"@types/sarif": "^2.1.7",
|
"@types/sarif": "^2.1.7",
|
||||||
"@types/semver": "^7.7.1",
|
"@types/semver": "^7.7.1",
|
||||||
@@ -58,10 +58,10 @@
|
|||||||
"eslint-plugin-no-async-foreach": "^0.1.1",
|
"eslint-plugin-no-async-foreach": "^0.1.1",
|
||||||
"glob": "^11.1.0",
|
"glob": "^11.1.0",
|
||||||
"globals": "^17.6.0",
|
"globals": "^17.6.0",
|
||||||
"nock": "^14.0.12",
|
"nock": "^14.0.15",
|
||||||
"sinon": "^22.0.0",
|
"sinon": "^22.0.0",
|
||||||
"typescript": "^6.0.3",
|
"typescript": "^6.0.3",
|
||||||
"typescript-eslint": "^8.59.2"
|
"typescript-eslint": "^8.59.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aashutoshrathi/word-wrap": {
|
"node_modules/@aashutoshrathi/word-wrap": {
|
||||||
@@ -1316,9 +1316,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint/compat": {
|
"node_modules/@eslint/compat": {
|
||||||
"version": "2.0.5",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-2.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-2.1.0.tgz",
|
||||||
"integrity": "sha512-IbHDbHJfkVNv6xjlET8AIVo/K1NQt7YT4Rp6ok/clyBGcpRx1l6gv0Rq3vBvYfPJIZt6ODf66Zq08FJNDpnzgg==",
|
"integrity": "sha512-LgaSCymEpw7tF53xvDw9SNsraPb1IBHxpdABIOM0hW8UAlP8znrjYtuxfR58FSJ3L9BhwD+FaPRFQpZq84Nh6g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -2469,9 +2469,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "20.19.39",
|
"version": "20.19.41",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.39.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.41.tgz",
|
||||||
"integrity": "sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==",
|
"integrity": "sha512-ECymXOukMnOoVkC2bb1Vc/w/836DXncOg5m8Xj1RH7xSHZJWNYY6Zh7EH477vcnD5egKNNfy2RpNOmuChhFPgQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -2528,17 +2528,17 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.4.tgz",
|
||||||
"integrity": "sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ==",
|
"integrity": "sha512-PegsU+XfyJJNjd4+u/k6f9yTyp0lEXXiPopUNobZcIAUJFGICFLN+sP0Rb3JehVmiij1Ph0dFGYqODoRo/2+6A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/regexpp": "^4.12.2",
|
"@eslint-community/regexpp": "^4.12.2",
|
||||||
"@typescript-eslint/scope-manager": "8.59.2",
|
"@typescript-eslint/scope-manager": "8.59.4",
|
||||||
"@typescript-eslint/type-utils": "8.59.2",
|
"@typescript-eslint/type-utils": "8.59.4",
|
||||||
"@typescript-eslint/utils": "8.59.2",
|
"@typescript-eslint/utils": "8.59.4",
|
||||||
"@typescript-eslint/visitor-keys": "8.59.2",
|
"@typescript-eslint/visitor-keys": "8.59.4",
|
||||||
"ignore": "^7.0.5",
|
"ignore": "^7.0.5",
|
||||||
"natural-compare": "^1.4.0",
|
"natural-compare": "^1.4.0",
|
||||||
"ts-api-utils": "^2.5.0"
|
"ts-api-utils": "^2.5.0"
|
||||||
@@ -2551,7 +2551,7 @@
|
|||||||
"url": "https://opencollective.com/typescript-eslint"
|
"url": "https://opencollective.com/typescript-eslint"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@typescript-eslint/parser": "^8.59.2",
|
"@typescript-eslint/parser": "^8.59.4",
|
||||||
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
|
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
|
||||||
"typescript": ">=4.8.4 <6.1.0"
|
"typescript": ">=4.8.4 <6.1.0"
|
||||||
}
|
}
|
||||||
@@ -2567,16 +2567,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/parser": {
|
"node_modules/@typescript-eslint/parser": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.4.tgz",
|
||||||
"integrity": "sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ==",
|
"integrity": "sha512-zORHqO/tuhxY1zWuTvMUqddRxpiFJ72xVfcNoWpqdLjs6lfPbuQBJuW4pk+49/uBMy7Ssr4bzgjiKmmDB1UbZQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/scope-manager": "8.59.2",
|
"@typescript-eslint/scope-manager": "8.59.4",
|
||||||
"@typescript-eslint/types": "8.59.2",
|
"@typescript-eslint/types": "8.59.4",
|
||||||
"@typescript-eslint/typescript-estree": "8.59.2",
|
"@typescript-eslint/typescript-estree": "8.59.4",
|
||||||
"@typescript-eslint/visitor-keys": "8.59.2",
|
"@typescript-eslint/visitor-keys": "8.59.4",
|
||||||
"debug": "^4.4.3"
|
"debug": "^4.4.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -2610,14 +2610,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/project-service": {
|
"node_modules/@typescript-eslint/project-service": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.4.tgz",
|
||||||
"integrity": "sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==",
|
"integrity": "sha512-Ly00Vu4oAacfDeHp2Zg85ioNG6l8HG+tN1D7J+xTHSxu9y0awYKJ2zH1rFBn8ZSfuGK+7FxK3Cgl3uAz0aZZLg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/tsconfig-utils": "^8.59.2",
|
"@typescript-eslint/tsconfig-utils": "^8.59.4",
|
||||||
"@typescript-eslint/types": "^8.59.2",
|
"@typescript-eslint/types": "^8.59.4",
|
||||||
"debug": "^4.4.3"
|
"debug": "^4.4.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -2650,14 +2650,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/scope-manager": {
|
"node_modules/@typescript-eslint/scope-manager": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.4.tgz",
|
||||||
"integrity": "sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==",
|
"integrity": "sha512-mUeR/3H1WrTAddJrwut8OoPjfauaztMQmRwV5fQTUyNVJCLiUXXe4lGEyYIL2oFDpP7UtgbGJXCt72wT0z2S3Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "8.59.2",
|
"@typescript-eslint/types": "8.59.4",
|
||||||
"@typescript-eslint/visitor-keys": "8.59.2"
|
"@typescript-eslint/visitor-keys": "8.59.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
@@ -2668,9 +2668,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/tsconfig-utils": {
|
"node_modules/@typescript-eslint/tsconfig-utils": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.4.tgz",
|
||||||
"integrity": "sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==",
|
"integrity": "sha512-DLCpnKgD4alVxTBSKulK+gU1KCqOgUXfDRDXh2mZgzokQKa/70ax93I2uVO3m/LLvIAtWZIFoiifudmIqAxpMA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -2685,15 +2685,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/type-utils": {
|
"node_modules/@typescript-eslint/type-utils": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.4.tgz",
|
||||||
"integrity": "sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ==",
|
"integrity": "sha512-uonTuPAAKr9XaBGqJ3LjYTh72zy5DyGesljO9gtmk/eFW0W1fRHjnwVYKB35Lm8d5Q5CluEW3gPHjTvZTmgrfA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "8.59.2",
|
"@typescript-eslint/types": "8.59.4",
|
||||||
"@typescript-eslint/typescript-estree": "8.59.2",
|
"@typescript-eslint/typescript-estree": "8.59.4",
|
||||||
"@typescript-eslint/utils": "8.59.2",
|
"@typescript-eslint/utils": "8.59.4",
|
||||||
"debug": "^4.4.3",
|
"debug": "^4.4.3",
|
||||||
"ts-api-utils": "^2.5.0"
|
"ts-api-utils": "^2.5.0"
|
||||||
},
|
},
|
||||||
@@ -2728,9 +2728,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/types": {
|
"node_modules/@typescript-eslint/types": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.4.tgz",
|
||||||
"integrity": "sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==",
|
"integrity": "sha512-F1o7WJcCq+bc8dwcO/YsSEOudAH8RDtaOhM6wcAQhcUsFhnWQl81JKy48q1hoxAU0qrzM89+31GYh1515Zde3Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -2742,16 +2742,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/typescript-estree": {
|
"node_modules/@typescript-eslint/typescript-estree": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.4.tgz",
|
||||||
"integrity": "sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==",
|
"integrity": "sha512-F+RuOmcDXo4+TPdfd/TCLS3m2nw8gE9XXyZLrA3JBfaA5tz9TtdkyD3YJFmPxulyc2cKbEok/CvFE3MgSLWnag==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/project-service": "8.59.2",
|
"@typescript-eslint/project-service": "8.59.4",
|
||||||
"@typescript-eslint/tsconfig-utils": "8.59.2",
|
"@typescript-eslint/tsconfig-utils": "8.59.4",
|
||||||
"@typescript-eslint/types": "8.59.2",
|
"@typescript-eslint/types": "8.59.4",
|
||||||
"@typescript-eslint/visitor-keys": "8.59.2",
|
"@typescript-eslint/visitor-keys": "8.59.4",
|
||||||
"debug": "^4.4.3",
|
"debug": "^4.4.3",
|
||||||
"minimatch": "^10.2.2",
|
"minimatch": "^10.2.2",
|
||||||
"semver": "^7.7.3",
|
"semver": "^7.7.3",
|
||||||
@@ -2827,16 +2827,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/utils": {
|
"node_modules/@typescript-eslint/utils": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.4.tgz",
|
||||||
"integrity": "sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==",
|
"integrity": "sha512-cYXeNAUsG4lJo5dbc1FcKm+JwIWrj1/UpTORsC6tGMjEZ81DYcvIr9/ueikhMa/Y/gDQYGp+YX9/xQrXje5BJw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/eslint-utils": "^4.9.1",
|
"@eslint-community/eslint-utils": "^4.9.1",
|
||||||
"@typescript-eslint/scope-manager": "8.59.2",
|
"@typescript-eslint/scope-manager": "8.59.4",
|
||||||
"@typescript-eslint/types": "8.59.2",
|
"@typescript-eslint/types": "8.59.4",
|
||||||
"@typescript-eslint/typescript-estree": "8.59.2"
|
"@typescript-eslint/typescript-estree": "8.59.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
@@ -2851,13 +2851,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/visitor-keys": {
|
"node_modules/@typescript-eslint/visitor-keys": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.4.tgz",
|
||||||
"integrity": "sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==",
|
"integrity": "sha512-U3gxVaDVnuZKhSspW/MzMxE1kq7zOdc072FcSNoqA1I9p8HyKbBFfEHoWckBAMgNMph4MamwS5iTVzFmrnt8TQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "8.59.2",
|
"@typescript-eslint/types": "8.59.4",
|
||||||
"eslint-visitor-keys": "^5.0.0"
|
"eslint-visitor-keys": "^5.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -7415,9 +7415,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/nock": {
|
"node_modules/nock": {
|
||||||
"version": "14.0.12",
|
"version": "14.0.15",
|
||||||
"resolved": "https://registry.npmjs.org/nock/-/nock-14.0.12.tgz",
|
"resolved": "https://registry.npmjs.org/nock/-/nock-14.0.15.tgz",
|
||||||
"integrity": "sha512-kZM3bHV0KzhHH6E2eRszHyML/w87AUzLBwupNTHohtYWP9fZYgUPmCbSKq6ITfEEmHqN4/p0MscvUipT4P5Qsg==",
|
"integrity": "sha512-S0a47C9pLvcYx/Ugf0H30BVBEcUgMMBDk9VJIDlJ8XGrfH2QDUD4Tgdp45qDIiHttokBG+IbsOtsvIjGR/j3bg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -8311,9 +8311,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/semver": {
|
"node_modules/semver": {
|
||||||
"version": "7.7.4",
|
"version": "7.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
|
||||||
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
|
"integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"bin": {
|
"bin": {
|
||||||
"semver": "bin/semver.js"
|
"semver": "bin/semver.js"
|
||||||
@@ -9047,9 +9047,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tmp": {
|
"node_modules/tmp": {
|
||||||
"version": "0.2.4",
|
"version": "0.2.7",
|
||||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz",
|
||||||
"integrity": "sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==",
|
"integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.14"
|
"node": ">=14.14"
|
||||||
@@ -9140,14 +9140,13 @@
|
|||||||
"license": "0BSD"
|
"license": "0BSD"
|
||||||
},
|
},
|
||||||
"node_modules/tsx": {
|
"node_modules/tsx": {
|
||||||
"version": "4.21.0",
|
"version": "4.22.3",
|
||||||
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz",
|
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.22.3.tgz",
|
||||||
"integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==",
|
"integrity": "sha512-mdoNxBC/cSQObGGVQ5Bpn5i+yv7j68gk3Nfm3wFjcJg3Z0Mix9jzAFfP12prmm5eVGmDKtp0yyArrs0Q+8gZHg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "~0.27.0",
|
"esbuild": "~0.28.0"
|
||||||
"get-tsconfig": "^4.7.5"
|
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsx": "dist/cli.mjs"
|
"tsx": "dist/cli.mjs"
|
||||||
@@ -9159,490 +9158,6 @@
|
|||||||
"fsevents": "~2.3.3"
|
"fsevents": "~2.3.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tsx/node_modules/@esbuild/aix-ppc64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==",
|
|
||||||
"cpu": [
|
|
||||||
"ppc64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"aix"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/android-arm": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==",
|
|
||||||
"cpu": [
|
|
||||||
"arm"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"android"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/android-arm64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==",
|
|
||||||
"cpu": [
|
|
||||||
"arm64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"android"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/android-x64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==",
|
|
||||||
"cpu": [
|
|
||||||
"x64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"android"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/darwin-arm64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==",
|
|
||||||
"cpu": [
|
|
||||||
"arm64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"darwin"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/darwin-x64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==",
|
|
||||||
"cpu": [
|
|
||||||
"x64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"darwin"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/freebsd-arm64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==",
|
|
||||||
"cpu": [
|
|
||||||
"arm64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"freebsd"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/freebsd-x64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==",
|
|
||||||
"cpu": [
|
|
||||||
"x64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"freebsd"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/linux-arm": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==",
|
|
||||||
"cpu": [
|
|
||||||
"arm"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/linux-arm64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==",
|
|
||||||
"cpu": [
|
|
||||||
"arm64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/linux-ia32": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==",
|
|
||||||
"cpu": [
|
|
||||||
"ia32"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/linux-loong64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==",
|
|
||||||
"cpu": [
|
|
||||||
"loong64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/linux-mips64el": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==",
|
|
||||||
"cpu": [
|
|
||||||
"mips64el"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/linux-ppc64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==",
|
|
||||||
"cpu": [
|
|
||||||
"ppc64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/linux-riscv64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==",
|
|
||||||
"cpu": [
|
|
||||||
"riscv64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/linux-s390x": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==",
|
|
||||||
"cpu": [
|
|
||||||
"s390x"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/linux-x64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==",
|
|
||||||
"cpu": [
|
|
||||||
"x64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/netbsd-arm64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==",
|
|
||||||
"cpu": [
|
|
||||||
"arm64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"netbsd"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/netbsd-x64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==",
|
|
||||||
"cpu": [
|
|
||||||
"x64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"netbsd"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/openbsd-arm64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==",
|
|
||||||
"cpu": [
|
|
||||||
"arm64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"openbsd"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/openbsd-x64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==",
|
|
||||||
"cpu": [
|
|
||||||
"x64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"openbsd"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/openharmony-arm64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==",
|
|
||||||
"cpu": [
|
|
||||||
"arm64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"openharmony"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/sunos-x64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==",
|
|
||||||
"cpu": [
|
|
||||||
"x64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"sunos"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/win32-arm64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==",
|
|
||||||
"cpu": [
|
|
||||||
"arm64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"win32"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/win32-ia32": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==",
|
|
||||||
"cpu": [
|
|
||||||
"ia32"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"win32"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/@esbuild/win32-x64": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==",
|
|
||||||
"cpu": [
|
|
||||||
"x64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"win32"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tsx/node_modules/esbuild": {
|
|
||||||
"version": "0.27.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz",
|
|
||||||
"integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==",
|
|
||||||
"dev": true,
|
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
|
||||||
"esbuild": "bin/esbuild"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
},
|
|
||||||
"optionalDependencies": {
|
|
||||||
"@esbuild/aix-ppc64": "0.27.7",
|
|
||||||
"@esbuild/android-arm": "0.27.7",
|
|
||||||
"@esbuild/android-arm64": "0.27.7",
|
|
||||||
"@esbuild/android-x64": "0.27.7",
|
|
||||||
"@esbuild/darwin-arm64": "0.27.7",
|
|
||||||
"@esbuild/darwin-x64": "0.27.7",
|
|
||||||
"@esbuild/freebsd-arm64": "0.27.7",
|
|
||||||
"@esbuild/freebsd-x64": "0.27.7",
|
|
||||||
"@esbuild/linux-arm": "0.27.7",
|
|
||||||
"@esbuild/linux-arm64": "0.27.7",
|
|
||||||
"@esbuild/linux-ia32": "0.27.7",
|
|
||||||
"@esbuild/linux-loong64": "0.27.7",
|
|
||||||
"@esbuild/linux-mips64el": "0.27.7",
|
|
||||||
"@esbuild/linux-ppc64": "0.27.7",
|
|
||||||
"@esbuild/linux-riscv64": "0.27.7",
|
|
||||||
"@esbuild/linux-s390x": "0.27.7",
|
|
||||||
"@esbuild/linux-x64": "0.27.7",
|
|
||||||
"@esbuild/netbsd-arm64": "0.27.7",
|
|
||||||
"@esbuild/netbsd-x64": "0.27.7",
|
|
||||||
"@esbuild/openbsd-arm64": "0.27.7",
|
|
||||||
"@esbuild/openbsd-x64": "0.27.7",
|
|
||||||
"@esbuild/openharmony-arm64": "0.27.7",
|
|
||||||
"@esbuild/sunos-x64": "0.27.7",
|
|
||||||
"@esbuild/win32-arm64": "0.27.7",
|
|
||||||
"@esbuild/win32-ia32": "0.27.7",
|
|
||||||
"@esbuild/win32-x64": "0.27.7"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tunnel": {
|
"node_modules/tunnel": {
|
||||||
"version": "0.0.6",
|
"version": "0.0.6",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@@ -9777,16 +9292,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript-eslint": {
|
"node_modules/typescript-eslint": {
|
||||||
"version": "8.59.2",
|
"version": "8.59.4",
|
||||||
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.2.tgz",
|
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.4.tgz",
|
||||||
"integrity": "sha512-pJw051uomb3ZeCzGTpRb8RbEqB5Y4WWet8gl/GcTlU35BSx0PVdZ86/bqkQCyKKuraVQEK7r6kBHQXF+fBhkoQ==",
|
"integrity": "sha512-Rw6+44QNFaXtgHSjPy+Kw8hrJniMYzR85E9yLmOLcfZ91/rz+JXQbDTCmc6ccxMPY6K6PgAq26f0JCBfR7LIPQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/eslint-plugin": "8.59.2",
|
"@typescript-eslint/eslint-plugin": "8.59.4",
|
||||||
"@typescript-eslint/parser": "8.59.2",
|
"@typescript-eslint/parser": "8.59.4",
|
||||||
"@typescript-eslint/typescript-estree": "8.59.2",
|
"@typescript-eslint/typescript-estree": "8.59.4",
|
||||||
"@typescript-eslint/utils": "8.59.2"
|
"@typescript-eslint/utils": "8.59.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
@@ -10212,9 +9727,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/yaml": {
|
"node_modules/yaml": {
|
||||||
"version": "2.8.4",
|
"version": "2.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.4.tgz",
|
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz",
|
||||||
"integrity": "sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==",
|
"integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"bin": {
|
"bin": {
|
||||||
"yaml": "bin.mjs"
|
"yaml": "bin.mjs"
|
||||||
@@ -10302,11 +9817,11 @@
|
|||||||
"@octokit/core": "^7.0.6",
|
"@octokit/core": "^7.0.6",
|
||||||
"@octokit/plugin-paginate-rest": ">=9.2.2",
|
"@octokit/plugin-paginate-rest": ">=9.2.2",
|
||||||
"@octokit/plugin-rest-endpoint-methods": "^17.0.0",
|
"@octokit/plugin-rest-endpoint-methods": "^17.0.0",
|
||||||
"yaml": "^2.8.4"
|
"yaml": "^2.9.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^20.19.39",
|
"@types/node": "^20.19.41",
|
||||||
"tsx": "^4.21.0"
|
"tsx": "^4.22.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-6
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "codeql",
|
"name": "codeql",
|
||||||
"version": "3.36.0",
|
"version": "4.36.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "CodeQL action",
|
"description": "CodeQL action",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -40,18 +40,18 @@
|
|||||||
"jsonschema": "1.5.0",
|
"jsonschema": "1.5.0",
|
||||||
"long": "^5.3.2",
|
"long": "^5.3.2",
|
||||||
"node-forge": "^1.4.0",
|
"node-forge": "^1.4.0",
|
||||||
"semver": "^7.7.4",
|
"semver": "^7.8.0",
|
||||||
"uuid": "^14.0.0"
|
"uuid": "^14.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@ava/typescript": "6.0.0",
|
"@ava/typescript": "6.0.0",
|
||||||
"@eslint/compat": "^2.0.5",
|
"@eslint/compat": "^2.1.0",
|
||||||
"@microsoft/eslint-formatter-sarif": "^3.1.0",
|
"@microsoft/eslint-formatter-sarif": "^3.1.0",
|
||||||
"@octokit/types": "^16.0.0",
|
"@octokit/types": "^16.0.0",
|
||||||
"@types/archiver": "^7.0.0",
|
"@types/archiver": "^7.0.0",
|
||||||
"@types/follow-redirects": "^1.14.4",
|
"@types/follow-redirects": "^1.14.4",
|
||||||
"@types/js-yaml": "^4.0.9",
|
"@types/js-yaml": "^4.0.9",
|
||||||
"@types/node": "^20.19.39",
|
"@types/node": "^20.19.41",
|
||||||
"@types/node-forge": "^1.3.14",
|
"@types/node-forge": "^1.3.14",
|
||||||
"@types/sarif": "^2.1.7",
|
"@types/sarif": "^2.1.7",
|
||||||
"@types/semver": "^7.7.1",
|
"@types/semver": "^7.7.1",
|
||||||
@@ -66,10 +66,10 @@
|
|||||||
"eslint-plugin-no-async-foreach": "^0.1.1",
|
"eslint-plugin-no-async-foreach": "^0.1.1",
|
||||||
"glob": "^11.1.0",
|
"glob": "^11.1.0",
|
||||||
"globals": "^17.6.0",
|
"globals": "^17.6.0",
|
||||||
"nock": "^14.0.12",
|
"nock": "^14.0.15",
|
||||||
"sinon": "^22.0.0",
|
"sinon": "^22.0.0",
|
||||||
"typescript": "^6.0.3",
|
"typescript": "^6.0.3",
|
||||||
"typescript-eslint": "^8.59.2"
|
"typescript-eslint": "^8.59.4"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"@actions/tool-cache": {
|
"@actions/tool-cache": {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ versions:
|
|||||||
- default
|
- default
|
||||||
steps:
|
steps:
|
||||||
- name: Set up Ruby
|
- name: Set up Ruby
|
||||||
uses: ruby/setup-ruby@c4e5b1316158f92e3d49443a9d58b31d25ac0f8f # v1.306.0
|
uses: ruby/setup-ruby@6aaa311d81eba98ae12eaffbcb63296ace0efcde # v1.307.0
|
||||||
with:
|
with:
|
||||||
ruby-version: 2.6
|
ruby-version: 2.6
|
||||||
- name: Install Code Scanning integration
|
- name: Install Code Scanning integration
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
"@octokit/core": "^7.0.6",
|
"@octokit/core": "^7.0.6",
|
||||||
"@octokit/plugin-paginate-rest": ">=9.2.2",
|
"@octokit/plugin-paginate-rest": ">=9.2.2",
|
||||||
"@octokit/plugin-rest-endpoint-methods": "^17.0.0",
|
"@octokit/plugin-rest-endpoint-methods": "^17.0.0",
|
||||||
"yaml": "^2.8.4"
|
"yaml": "^2.9.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^20.19.39",
|
"@types/node": "^20.19.41",
|
||||||
"tsx": "^4.21.0"
|
"tsx": "^4.22.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,5 +21,5 @@ outputs:
|
|||||||
environment:
|
environment:
|
||||||
description: The inferred build environment configuration.
|
description: The inferred build environment configuration.
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node24
|
||||||
main: '../lib/resolve-environment-entry.js'
|
main: '../lib/resolve-environment-entry.js'
|
||||||
|
|||||||
@@ -54,5 +54,5 @@ outputs:
|
|||||||
codeql-version:
|
codeql-version:
|
||||||
description: The version of the CodeQL binary that was installed.
|
description: The version of the CodeQL binary that was installed.
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node24
|
||||||
main: '../lib/setup-codeql-entry.js'
|
main: '../lib/setup-codeql-entry.js'
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import {
|
|||||||
} from "./dependency-caching";
|
} from "./dependency-caching";
|
||||||
import { EnvVar } from "./environment";
|
import { EnvVar } from "./environment";
|
||||||
import { initFeatures } from "./feature-flags";
|
import { initFeatures } from "./feature-flags";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import { getActionsLogger, Logger } from "./logging";
|
import { getActionsLogger, Logger } from "./logging";
|
||||||
import { cleanupAndUploadOverlayBaseDatabaseToCache } from "./overlay/caching";
|
import { cleanupAndUploadOverlayBaseDatabaseToCache } from "./overlay/caching";
|
||||||
import { getRepositoryNwo } from "./repository";
|
import { getRepositoryNwo } from "./repository";
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@ import {
|
|||||||
} from "./analyze";
|
} from "./analyze";
|
||||||
import { createStubCodeQL } from "./codeql";
|
import { createStubCodeQL } from "./codeql";
|
||||||
import { Feature } from "./feature-flags";
|
import { Feature } from "./feature-flags";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import { getRunnerLogger } from "./logging";
|
import { getRunnerLogger } from "./logging";
|
||||||
import {
|
import {
|
||||||
setupTests,
|
setupTests,
|
||||||
|
|||||||
+1
-1
@@ -21,7 +21,7 @@ import {
|
|||||||
} from "./diff-informed-analysis-utils";
|
} from "./diff-informed-analysis-utils";
|
||||||
import { EnvVar } from "./environment";
|
import { EnvVar } from "./environment";
|
||||||
import { FeatureEnablement, Feature } from "./feature-flags";
|
import { FeatureEnablement, Feature } from "./feature-flags";
|
||||||
import { BuiltInLanguage, Language } from "./languages";
|
import { BuiltInLanguage, Language } from "./languages/index";
|
||||||
import { Logger, withGroupAsync } from "./logging";
|
import { Logger, withGroupAsync } from "./logging";
|
||||||
import { OverlayDatabaseMode } from "./overlay/overlay-database-mode";
|
import { OverlayDatabaseMode } from "./overlay/overlay-database-mode";
|
||||||
import type * as sarif from "./sarif";
|
import type * as sarif from "./sarif";
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"maximumVersion": "3.21", "minimumVersion": "3.16"}
|
{"maximumVersion": "3.22", "minimumVersion": "3.16"}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { determineAutobuildLanguages, runAutobuild } from "./autobuild";
|
|||||||
import { getCodeQL } from "./codeql";
|
import { getCodeQL } from "./codeql";
|
||||||
import { Config, getConfig } from "./config-utils";
|
import { Config, getConfig } from "./config-utils";
|
||||||
import { EnvVar } from "./environment";
|
import { EnvVar } from "./environment";
|
||||||
import { Language } from "./languages";
|
import { Language } from "./languages/index";
|
||||||
import { Logger, getActionsLogger } from "./logging";
|
import { Logger, getActionsLogger } from "./logging";
|
||||||
import {
|
import {
|
||||||
StatusReportBase,
|
StatusReportBase,
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@ import * as configUtils from "./config-utils";
|
|||||||
import { DocUrl } from "./doc-url";
|
import { DocUrl } from "./doc-url";
|
||||||
import { EnvVar } from "./environment";
|
import { EnvVar } from "./environment";
|
||||||
import { Feature, featureConfig, initFeatures } from "./feature-flags";
|
import { Feature, featureConfig, initFeatures } from "./feature-flags";
|
||||||
import { BuiltInLanguage, Language } from "./languages";
|
import { BuiltInLanguage, Language } from "./languages/index";
|
||||||
import { Logger } from "./logging";
|
import { Logger } from "./logging";
|
||||||
import { getRepositoryNwo } from "./repository";
|
import { getRepositoryNwo } from "./repository";
|
||||||
import { asyncFilter, BuildMode } from "./util";
|
import { asyncFilter, BuildMode } from "./util";
|
||||||
|
|||||||
+1
-1
@@ -21,7 +21,7 @@ import {
|
|||||||
import type { Config } from "./config-utils";
|
import type { Config } from "./config-utils";
|
||||||
import * as defaults from "./defaults.json";
|
import * as defaults from "./defaults.json";
|
||||||
import { DocUrl } from "./doc-url";
|
import { DocUrl } from "./doc-url";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import { getRunnerLogger } from "./logging";
|
import { getRunnerLogger } from "./logging";
|
||||||
import { ToolsSource } from "./setup-codeql";
|
import { ToolsSource } from "./setup-codeql";
|
||||||
import {
|
import {
|
||||||
|
|||||||
+1
-1
@@ -22,7 +22,7 @@ import {
|
|||||||
FeatureEnablement,
|
FeatureEnablement,
|
||||||
} from "./feature-flags";
|
} from "./feature-flags";
|
||||||
import { isAnalyzingDefaultBranch } from "./git-utils";
|
import { isAnalyzingDefaultBranch } from "./git-utils";
|
||||||
import { Language } from "./languages";
|
import { Language } from "./languages/index";
|
||||||
import { Logger } from "./logging";
|
import { Logger } from "./logging";
|
||||||
import { writeBaseDatabaseOidsFile, writeOverlayChangesFile } from "./overlay";
|
import { writeBaseDatabaseOidsFile, writeOverlayChangesFile } from "./overlay";
|
||||||
import { OverlayDatabaseMode } from "./overlay/overlay-database-mode";
|
import { OverlayDatabaseMode } from "./overlay/overlay-database-mode";
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import { Feature } from "./feature-flags";
|
|||||||
import { RepositoryProperties } from "./feature-flags/properties";
|
import { RepositoryProperties } from "./feature-flags/properties";
|
||||||
import * as gitUtils from "./git-utils";
|
import * as gitUtils from "./git-utils";
|
||||||
import { GitVersionInfo } from "./git-utils";
|
import { GitVersionInfo } from "./git-utils";
|
||||||
import { BuiltInLanguage, Language } from "./languages";
|
import { BuiltInLanguage, Language } from "./languages/index";
|
||||||
import { getRunnerLogger } from "./logging";
|
import { getRunnerLogger } from "./logging";
|
||||||
import { CODEQL_OVERLAY_MINIMUM_VERSION } from "./overlay";
|
import { CODEQL_OVERLAY_MINIMUM_VERSION } from "./overlay";
|
||||||
import * as overlayDiagnostics from "./overlay/diagnostics";
|
import * as overlayDiagnostics from "./overlay/diagnostics";
|
||||||
|
|||||||
+1
-1
@@ -48,7 +48,7 @@ import {
|
|||||||
hasSubmodules,
|
hasSubmodules,
|
||||||
isAnalyzingDefaultBranch,
|
isAnalyzingDefaultBranch,
|
||||||
} from "./git-utils";
|
} from "./git-utils";
|
||||||
import { BuiltInLanguage, Language } from "./languages";
|
import { BuiltInLanguage, Language } from "./languages/index";
|
||||||
import { Logger } from "./logging";
|
import { Logger } from "./logging";
|
||||||
import { CODEQL_OVERLAY_MINIMUM_VERSION } from "./overlay";
|
import { CODEQL_OVERLAY_MINIMUM_VERSION } from "./overlay";
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -0,0 +1,280 @@
|
|||||||
|
import test from "ava";
|
||||||
|
|
||||||
|
import {
|
||||||
|
EffectiveToolsInputSource,
|
||||||
|
resolveToolsInput,
|
||||||
|
resolveToolsInputWithMetadata,
|
||||||
|
} from "../config/resolve-tools-input";
|
||||||
|
import {
|
||||||
|
RepositoryPropertyName,
|
||||||
|
ToolsModeRepositoryPropertyValue,
|
||||||
|
} from "../feature-flags/properties";
|
||||||
|
import type { RepositoryProperties } from "../feature-flags/properties";
|
||||||
|
import {
|
||||||
|
getRecordingLogger,
|
||||||
|
LoggedMessage,
|
||||||
|
setupTests,
|
||||||
|
} from "../testing-utils";
|
||||||
|
|
||||||
|
setupTests(test);
|
||||||
|
|
||||||
|
test("resolveToolsInput returns undefined when no tools input or repository property is set", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const result = resolveToolsInput(undefined, false, {}, logger);
|
||||||
|
|
||||||
|
t.is(result, undefined);
|
||||||
|
t.is(loggedMessages.length, 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInput returns workflow input when only workflow input is provided", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const result = resolveToolsInput("latest", false, {}, logger);
|
||||||
|
|
||||||
|
t.is(result, "latest");
|
||||||
|
t.is(loggedMessages.length, 1);
|
||||||
|
t.is(
|
||||||
|
loggedMessages[0].message,
|
||||||
|
"Setting tools: latest based on workflow input.",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInput returns repository property when only repository property is provided", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const repositoryProperties: RepositoryProperties = {
|
||||||
|
[RepositoryPropertyName.TOOLS]: "toolcache",
|
||||||
|
};
|
||||||
|
const result = resolveToolsInput(
|
||||||
|
undefined,
|
||||||
|
false,
|
||||||
|
repositoryProperties,
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
|
||||||
|
t.is(result, "toolcache");
|
||||||
|
t.is(loggedMessages.length, 1);
|
||||||
|
t.is(
|
||||||
|
loggedMessages[0].message,
|
||||||
|
"Setting tools: toolcache based on the 'github-codeql-tools' repository property (mode: 'enforce').",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInput prioritizes workflow input over repository property", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const repositoryProperties: RepositoryProperties = {
|
||||||
|
[RepositoryPropertyName.TOOLS]: "toolcache",
|
||||||
|
};
|
||||||
|
const result = resolveToolsInput(
|
||||||
|
"nightly",
|
||||||
|
false,
|
||||||
|
repositoryProperties,
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
|
||||||
|
t.is(result, "nightly");
|
||||||
|
t.is(loggedMessages.length, 1);
|
||||||
|
t.is(
|
||||||
|
loggedMessages[0].message,
|
||||||
|
"Setting tools: nightly based on workflow input.",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInput treats empty string workflow input as not set", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const repositoryProperties: RepositoryProperties = {
|
||||||
|
[RepositoryPropertyName.TOOLS]: "toolcache",
|
||||||
|
};
|
||||||
|
const result = resolveToolsInput("", false, repositoryProperties, logger);
|
||||||
|
|
||||||
|
t.is(result, "toolcache");
|
||||||
|
t.is(loggedMessages.length, 1);
|
||||||
|
t.is(
|
||||||
|
loggedMessages[0].message,
|
||||||
|
"Setting tools: toolcache based on the 'github-codeql-tools' repository property (mode: 'enforce').",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInput returns undefined when repository property is undefined", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const repositoryProperties: RepositoryProperties = {
|
||||||
|
[RepositoryPropertyName.TOOLS]: undefined,
|
||||||
|
};
|
||||||
|
const result = resolveToolsInput(
|
||||||
|
undefined,
|
||||||
|
false,
|
||||||
|
repositoryProperties,
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
|
||||||
|
t.is(result, undefined);
|
||||||
|
t.is(loggedMessages.length, 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInput returns repository property when workflow input is not set", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const repositoryProperties: RepositoryProperties = {
|
||||||
|
[RepositoryPropertyName.TOOLS]: "toolcache",
|
||||||
|
};
|
||||||
|
const result = resolveToolsInput(
|
||||||
|
undefined,
|
||||||
|
false,
|
||||||
|
repositoryProperties,
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
|
||||||
|
t.is(result, "toolcache");
|
||||||
|
t.is(loggedMessages.length, 1);
|
||||||
|
t.is(
|
||||||
|
loggedMessages[0].message,
|
||||||
|
"Setting tools: toolcache based on the 'github-codeql-tools' repository property (mode: 'enforce').",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInput does not log when workflow input and repository property are not set", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const result = resolveToolsInput(undefined, false, {}, logger);
|
||||||
|
|
||||||
|
t.is(result, undefined);
|
||||||
|
t.is(loggedMessages.length, 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInput applies tools property in enforce mode for static workflows", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const repositoryProperties: RepositoryProperties = {
|
||||||
|
[RepositoryPropertyName.TOOLS]: "toolcache",
|
||||||
|
[RepositoryPropertyName.TOOLS_MODE]:
|
||||||
|
ToolsModeRepositoryPropertyValue.Enforce,
|
||||||
|
};
|
||||||
|
const result = resolveToolsInput(
|
||||||
|
undefined,
|
||||||
|
false,
|
||||||
|
repositoryProperties,
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
|
||||||
|
t.is(result, "toolcache");
|
||||||
|
t.is(loggedMessages.length, 1);
|
||||||
|
t.is(
|
||||||
|
loggedMessages[0].message,
|
||||||
|
"Setting tools: toolcache based on the 'github-codeql-tools' repository property (mode: 'enforce').",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInput applies tools property in dynamic mode for dynamic workflows", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const repositoryProperties: RepositoryProperties = {
|
||||||
|
[RepositoryPropertyName.TOOLS]: "toolcache",
|
||||||
|
[RepositoryPropertyName.TOOLS_MODE]:
|
||||||
|
ToolsModeRepositoryPropertyValue.Dynamic,
|
||||||
|
};
|
||||||
|
const result = resolveToolsInput(
|
||||||
|
undefined,
|
||||||
|
true,
|
||||||
|
repositoryProperties,
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
|
||||||
|
t.is(result, "toolcache");
|
||||||
|
t.is(loggedMessages.length, 1);
|
||||||
|
t.is(
|
||||||
|
loggedMessages[0].message,
|
||||||
|
"Setting tools: toolcache based on the 'github-codeql-tools' repository property (mode: 'dynamic').",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInput ignores tools property in dynamic mode for static workflows", (t) => {
|
||||||
|
const loggedMessages: LoggedMessage[] = [];
|
||||||
|
const logger = getRecordingLogger(loggedMessages);
|
||||||
|
|
||||||
|
const repositoryProperties: RepositoryProperties = {
|
||||||
|
[RepositoryPropertyName.TOOLS]: "toolcache",
|
||||||
|
[RepositoryPropertyName.TOOLS_MODE]:
|
||||||
|
ToolsModeRepositoryPropertyValue.Dynamic,
|
||||||
|
};
|
||||||
|
const result = resolveToolsInput(
|
||||||
|
undefined,
|
||||||
|
false,
|
||||||
|
repositoryProperties,
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
|
||||||
|
t.is(result, undefined);
|
||||||
|
t.is(loggedMessages.length, 1);
|
||||||
|
t.is(
|
||||||
|
loggedMessages[0].message,
|
||||||
|
"Ignoring 'github-codeql-tools' repository property because 'github-codeql-tools-mode' is set to 'dynamic' and this is not a dynamic workflow.",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInputWithMetadata reports workflow input source", (t) => {
|
||||||
|
const logger = getRecordingLogger([]);
|
||||||
|
|
||||||
|
const result = resolveToolsInputWithMetadata("latest", false, {}, logger);
|
||||||
|
|
||||||
|
t.is(result.effectiveToolsInput, "latest");
|
||||||
|
t.is(
|
||||||
|
result.effectiveToolsInputSource,
|
||||||
|
EffectiveToolsInputSource.WorkflowInput,
|
||||||
|
);
|
||||||
|
t.is(result.toolsRepoPropertyMode, undefined);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInputWithMetadata reports repository property source and mode", (t) => {
|
||||||
|
const logger = getRecordingLogger([]);
|
||||||
|
|
||||||
|
const result = resolveToolsInputWithMetadata(
|
||||||
|
undefined,
|
||||||
|
false,
|
||||||
|
{
|
||||||
|
[RepositoryPropertyName.TOOLS]: "toolcache",
|
||||||
|
[RepositoryPropertyName.TOOLS_MODE]:
|
||||||
|
ToolsModeRepositoryPropertyValue.Enforce,
|
||||||
|
},
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
|
||||||
|
t.is(result.effectiveToolsInput, "toolcache");
|
||||||
|
t.is(
|
||||||
|
result.effectiveToolsInputSource,
|
||||||
|
EffectiveToolsInputSource.RepositoryProperty,
|
||||||
|
);
|
||||||
|
t.is(result.toolsRepoPropertyMode, ToolsModeRepositoryPropertyValue.Enforce);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("resolveToolsInputWithMetadata reports dynamic-mode skip on static workflows", (t) => {
|
||||||
|
const logger = getRecordingLogger([]);
|
||||||
|
|
||||||
|
const result = resolveToolsInputWithMetadata(
|
||||||
|
undefined,
|
||||||
|
false,
|
||||||
|
{
|
||||||
|
[RepositoryPropertyName.TOOLS]: "toolcache",
|
||||||
|
[RepositoryPropertyName.TOOLS_MODE]:
|
||||||
|
ToolsModeRepositoryPropertyValue.Dynamic,
|
||||||
|
},
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
|
||||||
|
t.is(result.effectiveToolsInput, undefined);
|
||||||
|
t.is(result.effectiveToolsInputSource, EffectiveToolsInputSource.None);
|
||||||
|
t.is(result.toolsRepoPropertyMode, ToolsModeRepositoryPropertyValue.Dynamic);
|
||||||
|
});
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
import {
|
||||||
|
RepositoryProperties,
|
||||||
|
RepositoryPropertyName,
|
||||||
|
ToolsModeRepositoryPropertyValue,
|
||||||
|
} from "../feature-flags/properties";
|
||||||
|
import { Logger } from "../logging";
|
||||||
|
|
||||||
|
export enum EffectiveToolsInputSource {
|
||||||
|
WorkflowInput = "workflow-input",
|
||||||
|
RepositoryProperty = "repository-property",
|
||||||
|
None = "none",
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ResolvedToolsInput = {
|
||||||
|
effectiveToolsInput: string | undefined;
|
||||||
|
effectiveToolsInputSource: EffectiveToolsInputSource;
|
||||||
|
toolsRepoPropertyMode: ToolsModeRepositoryPropertyValue | undefined;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves the effective tools input by combining the workflow input and repository properties.
|
||||||
|
* The explicit `tools` workflow input takes precedence. If none is provided,
|
||||||
|
* falls back to the repository property (if set). The optional
|
||||||
|
* `github-codeql-tools-mode` repository property controls whether this fallback
|
||||||
|
* applies to all workflows (`enforce`) or only dynamic workflows (`dynamic`).
|
||||||
|
*
|
||||||
|
* @param toolsWorkflowInput - The value of the `tools` workflow input, if provided.
|
||||||
|
* @param isDynamicWorkflow - Whether the current workflow is dynamic.
|
||||||
|
* @param repositoryProperties - The parsed repository properties.
|
||||||
|
* @param logger - Logger for outputting resolution messages.
|
||||||
|
* @returns The effective tools input value.
|
||||||
|
*/
|
||||||
|
export function resolveToolsInput(
|
||||||
|
toolsWorkflowInput: string | undefined,
|
||||||
|
isDynamicWorkflow: boolean,
|
||||||
|
repositoryProperties: RepositoryProperties,
|
||||||
|
logger: Logger,
|
||||||
|
): string | undefined {
|
||||||
|
return resolveToolsInputWithMetadata(
|
||||||
|
toolsWorkflowInput,
|
||||||
|
isDynamicWorkflow,
|
||||||
|
repositoryProperties,
|
||||||
|
logger,
|
||||||
|
).effectiveToolsInput;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function resolveToolsInputWithMetadata(
|
||||||
|
toolsWorkflowInput: string | undefined,
|
||||||
|
isDynamicWorkflow: boolean,
|
||||||
|
repositoryProperties: RepositoryProperties,
|
||||||
|
logger: Logger,
|
||||||
|
): ResolvedToolsInput {
|
||||||
|
if (toolsWorkflowInput) {
|
||||||
|
logger.info(
|
||||||
|
`Setting tools: ${toolsWorkflowInput} based on workflow input.`,
|
||||||
|
);
|
||||||
|
return {
|
||||||
|
effectiveToolsInput: toolsWorkflowInput,
|
||||||
|
effectiveToolsInputSource: EffectiveToolsInputSource.WorkflowInput,
|
||||||
|
toolsRepoPropertyMode: undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const toolsPropertyValue = repositoryProperties[RepositoryPropertyName.TOOLS];
|
||||||
|
const toolsMode =
|
||||||
|
repositoryProperties[RepositoryPropertyName.TOOLS_MODE] ??
|
||||||
|
ToolsModeRepositoryPropertyValue.Enforce;
|
||||||
|
|
||||||
|
if (
|
||||||
|
toolsPropertyValue &&
|
||||||
|
toolsMode === ToolsModeRepositoryPropertyValue.Dynamic &&
|
||||||
|
!isDynamicWorkflow
|
||||||
|
) {
|
||||||
|
logger.info(
|
||||||
|
`Ignoring '${RepositoryPropertyName.TOOLS}' repository property because '${RepositoryPropertyName.TOOLS_MODE}' is set to '${toolsMode}' and this is not a dynamic workflow.`,
|
||||||
|
);
|
||||||
|
return {
|
||||||
|
effectiveToolsInput: undefined,
|
||||||
|
effectiveToolsInputSource: EffectiveToolsInputSource.None,
|
||||||
|
toolsRepoPropertyMode: toolsMode,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (toolsPropertyValue) {
|
||||||
|
logger.info(
|
||||||
|
`Setting tools: ${toolsPropertyValue} based on the '${RepositoryPropertyName.TOOLS}' repository property (mode: '${toolsMode}').`,
|
||||||
|
);
|
||||||
|
return {
|
||||||
|
effectiveToolsInput: toolsPropertyValue,
|
||||||
|
effectiveToolsInputSource: EffectiveToolsInputSource.RepositoryProperty,
|
||||||
|
toolsRepoPropertyMode: toolsMode,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
effectiveToolsInput: undefined,
|
||||||
|
effectiveToolsInputSource: EffectiveToolsInputSource.None,
|
||||||
|
toolsRepoPropertyMode: undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -12,7 +12,7 @@ import { createStubCodeQL } from "./codeql";
|
|||||||
import { Config } from "./config-utils";
|
import { Config } from "./config-utils";
|
||||||
import { cleanupAndUploadDatabases } from "./database-upload";
|
import { cleanupAndUploadDatabases } from "./database-upload";
|
||||||
import * as gitUtils from "./git-utils";
|
import * as gitUtils from "./git-utils";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import { RepositoryNwo } from "./repository";
|
import { RepositoryNwo } from "./repository";
|
||||||
import {
|
import {
|
||||||
checkExpectedLogMessages,
|
checkExpectedLogMessages,
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import { type CodeQL } from "./codeql";
|
|||||||
import { Config } from "./config-utils";
|
import { Config } from "./config-utils";
|
||||||
import { EnvVar } from "./environment";
|
import { EnvVar } from "./environment";
|
||||||
import * as json from "./json";
|
import * as json from "./json";
|
||||||
import { Language } from "./languages";
|
import { Language } from "./languages/index";
|
||||||
import { Logger, withGroup } from "./logging";
|
import { Logger, withGroup } from "./logging";
|
||||||
import {
|
import {
|
||||||
isSafeArtifactUpload,
|
isSafeArtifactUpload,
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import {
|
|||||||
CacheStoreResult,
|
CacheStoreResult,
|
||||||
} from "./dependency-caching";
|
} from "./dependency-caching";
|
||||||
import { Feature } from "./feature-flags";
|
import { Feature } from "./feature-flags";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import {
|
import {
|
||||||
setupTests,
|
setupTests,
|
||||||
createFeatures,
|
createFeatures,
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { CodeQL } from "./codeql";
|
|||||||
import { Config } from "./config-utils";
|
import { Config } from "./config-utils";
|
||||||
import { EnvVar } from "./environment";
|
import { EnvVar } from "./environment";
|
||||||
import { Feature, FeatureEnablement } from "./feature-flags";
|
import { Feature, FeatureEnablement } from "./feature-flags";
|
||||||
import { BuiltInLanguage, Language } from "./languages";
|
import { BuiltInLanguage, Language } from "./languages/index";
|
||||||
import { Logger } from "./logging";
|
import { Logger } from "./logging";
|
||||||
import { getErrorMessage, getRequiredEnvParam } from "./util";
|
import { getErrorMessage, getRequiredEnvParam } from "./util";
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|||||||
import path from "path";
|
import path from "path";
|
||||||
|
|
||||||
import type { Config } from "./config-utils";
|
import type { Config } from "./config-utils";
|
||||||
import { Language } from "./languages";
|
import { Language } from "./languages/index";
|
||||||
import { getActionsLogger } from "./logging";
|
import { getActionsLogger } from "./logging";
|
||||||
import { getCodeQLDatabasePath } from "./util";
|
import { getCodeQLDatabasePath } from "./util";
|
||||||
|
|
||||||
|
|||||||
@@ -78,6 +78,8 @@ test.serial("loadPropertiesFromApi loads known properties", async (t) => {
|
|||||||
url: "",
|
url: "",
|
||||||
data: [
|
data: [
|
||||||
{ property_name: "github-codeql-extra-queries", value: "+queries" },
|
{ property_name: "github-codeql-extra-queries", value: "+queries" },
|
||||||
|
{ property_name: "github-codeql-tools", value: "toolcache" },
|
||||||
|
{ property_name: "github-codeql-tools-mode", value: "dynamic" },
|
||||||
{ property_name: "unknown-property", value: "something" },
|
{ property_name: "unknown-property", value: "something" },
|
||||||
] satisfies properties.GitHubPropertiesResponse,
|
] satisfies properties.GitHubPropertiesResponse,
|
||||||
});
|
});
|
||||||
@@ -87,9 +89,45 @@ test.serial("loadPropertiesFromApi loads known properties", async (t) => {
|
|||||||
logger,
|
logger,
|
||||||
mockRepositoryNwo,
|
mockRepositoryNwo,
|
||||||
);
|
);
|
||||||
t.deepEqual(response, { "github-codeql-extra-queries": "+queries" });
|
t.deepEqual(response, {
|
||||||
|
"github-codeql-extra-queries": "+queries",
|
||||||
|
"github-codeql-tools": "toolcache",
|
||||||
|
"github-codeql-tools-mode": "dynamic",
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test.serial(
|
||||||
|
"loadPropertiesFromApi warns if tools mode property has unexpected value",
|
||||||
|
async (t) => {
|
||||||
|
sinon.stub(api, "getRepositoryProperties").resolves({
|
||||||
|
headers: {},
|
||||||
|
status: 200,
|
||||||
|
url: "",
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
property_name: "github-codeql-tools-mode",
|
||||||
|
value: "all",
|
||||||
|
},
|
||||||
|
] satisfies properties.GitHubPropertiesResponse,
|
||||||
|
});
|
||||||
|
const logger = getRunnerLogger(true);
|
||||||
|
const warningSpy = sinon.spy(logger, "warning");
|
||||||
|
const mockRepositoryNwo = parseRepositoryNwo("owner/repo");
|
||||||
|
const response = await properties.loadPropertiesFromApi(
|
||||||
|
logger,
|
||||||
|
mockRepositoryNwo,
|
||||||
|
);
|
||||||
|
t.deepEqual(response, {
|
||||||
|
"github-codeql-tools-mode": "enforce",
|
||||||
|
});
|
||||||
|
t.true(warningSpy.calledOnce);
|
||||||
|
t.is(
|
||||||
|
warningSpy.firstCall.args[0],
|
||||||
|
"Repository property 'github-codeql-tools-mode' has unexpected value 'all'. Expected 'dynamic' or 'enforce'. Defaulting to 'enforce'.",
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
test.serial("loadPropertiesFromApi parses true boolean property", async (t) => {
|
test.serial("loadPropertiesFromApi parses true boolean property", async (t) => {
|
||||||
sinon.stub(api, "getRepositoryProperties").resolves({
|
sinon.stub(api, "getRepositoryProperties").resolves({
|
||||||
headers: {},
|
headers: {},
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
import * as github from "@actions/github";
|
||||||
|
|
||||||
import { isDynamicWorkflow } from "../actions-util";
|
import { isDynamicWorkflow } from "../actions-util";
|
||||||
import { getRepositoryProperties } from "../api-client";
|
import { getRepositoryProperties } from "../api-client";
|
||||||
import { Logger } from "../logging";
|
import { Logger } from "../logging";
|
||||||
import { RepositoryNwo } from "../repository";
|
import { RepositoryNwo } from "../repository";
|
||||||
|
import { getErrorMessage, Result, Success, Failure } from "../util";
|
||||||
|
|
||||||
/** The common prefix that we expect all of our repository properties to have. */
|
/** The common prefix that we expect all of our repository properties to have. */
|
||||||
export const GITHUB_CODEQL_PROPERTY_PREFIX = "github-codeql-";
|
export const GITHUB_CODEQL_PROPERTY_PREFIX = "github-codeql-";
|
||||||
@@ -13,6 +16,13 @@ export enum RepositoryPropertyName {
|
|||||||
DISABLE_OVERLAY = "github-codeql-disable-overlay",
|
DISABLE_OVERLAY = "github-codeql-disable-overlay",
|
||||||
EXTRA_QUERIES = "github-codeql-extra-queries",
|
EXTRA_QUERIES = "github-codeql-extra-queries",
|
||||||
FILE_COVERAGE_ON_PRS = "github-codeql-file-coverage-on-prs",
|
FILE_COVERAGE_ON_PRS = "github-codeql-file-coverage-on-prs",
|
||||||
|
TOOLS = "github-codeql-tools",
|
||||||
|
TOOLS_MODE = "github-codeql-tools-mode",
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum ToolsModeRepositoryPropertyValue {
|
||||||
|
Dynamic = "dynamic",
|
||||||
|
Enforce = "enforce",
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Parsed types of the known repository properties. */
|
/** Parsed types of the known repository properties. */
|
||||||
@@ -20,6 +30,8 @@ export type AllRepositoryProperties = {
|
|||||||
[RepositoryPropertyName.DISABLE_OVERLAY]: boolean;
|
[RepositoryPropertyName.DISABLE_OVERLAY]: boolean;
|
||||||
[RepositoryPropertyName.EXTRA_QUERIES]: string;
|
[RepositoryPropertyName.EXTRA_QUERIES]: string;
|
||||||
[RepositoryPropertyName.FILE_COVERAGE_ON_PRS]: boolean;
|
[RepositoryPropertyName.FILE_COVERAGE_ON_PRS]: boolean;
|
||||||
|
[RepositoryPropertyName.TOOLS]: string;
|
||||||
|
[RepositoryPropertyName.TOOLS_MODE]: ToolsModeRepositoryPropertyValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Parsed repository properties. */
|
/** Parsed repository properties. */
|
||||||
@@ -30,6 +42,8 @@ export type RepositoryPropertyApiType = {
|
|||||||
[RepositoryPropertyName.DISABLE_OVERLAY]: string;
|
[RepositoryPropertyName.DISABLE_OVERLAY]: string;
|
||||||
[RepositoryPropertyName.EXTRA_QUERIES]: string;
|
[RepositoryPropertyName.EXTRA_QUERIES]: string;
|
||||||
[RepositoryPropertyName.FILE_COVERAGE_ON_PRS]: string;
|
[RepositoryPropertyName.FILE_COVERAGE_ON_PRS]: string;
|
||||||
|
[RepositoryPropertyName.TOOLS]: string;
|
||||||
|
[RepositoryPropertyName.TOOLS_MODE]: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The type of functions which take the `value` from the API and try to convert it to the type we want. */
|
/** The type of functions which take the `value` from the API and try to convert it to the type we want. */
|
||||||
@@ -77,6 +91,11 @@ const repositoryPropertyParsers: {
|
|||||||
[RepositoryPropertyName.DISABLE_OVERLAY]: booleanProperty,
|
[RepositoryPropertyName.DISABLE_OVERLAY]: booleanProperty,
|
||||||
[RepositoryPropertyName.EXTRA_QUERIES]: stringProperty,
|
[RepositoryPropertyName.EXTRA_QUERIES]: stringProperty,
|
||||||
[RepositoryPropertyName.FILE_COVERAGE_ON_PRS]: booleanProperty,
|
[RepositoryPropertyName.FILE_COVERAGE_ON_PRS]: booleanProperty,
|
||||||
|
[RepositoryPropertyName.TOOLS]: stringProperty,
|
||||||
|
[RepositoryPropertyName.TOOLS_MODE]: {
|
||||||
|
validate: isString,
|
||||||
|
parse: parseToolsModeRepositoryProperty,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -172,6 +191,38 @@ export async function loadPropertiesFromApi(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads [repository properties](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization) if applicable.
|
||||||
|
*/
|
||||||
|
export async function loadRepositoryProperties(
|
||||||
|
repositoryNwo: RepositoryNwo,
|
||||||
|
logger: Logger,
|
||||||
|
): Promise<Result<RepositoryProperties, unknown>> {
|
||||||
|
// See if we can skip loading repository properties early. In particular,
|
||||||
|
// repositories owned by users cannot have repository properties, so we can
|
||||||
|
// skip the API call entirely in that case.
|
||||||
|
const repositoryOwnerType = github.context.payload.repository?.owner.type;
|
||||||
|
logger.debug(
|
||||||
|
`Repository owner type is '${repositoryOwnerType ?? "unknown"}'.`,
|
||||||
|
);
|
||||||
|
if (repositoryOwnerType === "User") {
|
||||||
|
logger.debug(
|
||||||
|
"Skipping loading repository properties because the repository is owned by a user and " +
|
||||||
|
"therefore cannot have repository properties.",
|
||||||
|
);
|
||||||
|
return new Success({});
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
return new Success(await loadPropertiesFromApi(logger, repositoryNwo));
|
||||||
|
} catch (error) {
|
||||||
|
logger.info(
|
||||||
|
`Failed to load repository properties: ${getErrorMessage(error)}`,
|
||||||
|
);
|
||||||
|
return new Failure(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate that `value` has the correct type for `K` and, if so, update the partial set of repository
|
* Validate that `value` has the correct type for `K` and, if so, update the partial set of repository
|
||||||
* properties with the parsed value of the specified property.
|
* properties with the parsed value of the specified property.
|
||||||
@@ -217,6 +268,25 @@ function parseStringRepositoryProperty(_name: string, value: string): string {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Parse the tools mode repository property. */
|
||||||
|
function parseToolsModeRepositoryProperty(
|
||||||
|
name: string,
|
||||||
|
value: string,
|
||||||
|
logger: Logger,
|
||||||
|
): ToolsModeRepositoryPropertyValue {
|
||||||
|
if (
|
||||||
|
value !== ToolsModeRepositoryPropertyValue.Dynamic &&
|
||||||
|
value !== ToolsModeRepositoryPropertyValue.Enforce
|
||||||
|
) {
|
||||||
|
logger.warning(
|
||||||
|
`Repository property '${name}' has unexpected value '${value}'. Expected 'dynamic' or 'enforce'. Defaulting to 'enforce'.`,
|
||||||
|
);
|
||||||
|
return ToolsModeRepositoryPropertyValue.Enforce;
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
/** Set of known repository property names, for fast lookups. */
|
/** Set of known repository property names, for fast lookups. */
|
||||||
const KNOWN_REPOSITORY_PROPERTY_NAMES = new Set<string>(
|
const KNOWN_REPOSITORY_PROPERTY_NAMES = new Set<string>(
|
||||||
Object.values(RepositoryPropertyName),
|
Object.values(RepositoryPropertyName),
|
||||||
|
|||||||
+41
-42
@@ -2,12 +2,12 @@ import * as fs from "fs";
|
|||||||
import * as path from "path";
|
import * as path from "path";
|
||||||
|
|
||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
import * as github from "@actions/github";
|
|
||||||
import * as io from "@actions/io";
|
import * as io from "@actions/io";
|
||||||
import * as semver from "semver";
|
import * as semver from "semver";
|
||||||
import { v4 as uuidV4 } from "uuid";
|
import { v4 as uuidV4 } from "uuid";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
isDynamicWorkflow,
|
||||||
FileCmdNotFoundError,
|
FileCmdNotFoundError,
|
||||||
getActionVersion,
|
getActionVersion,
|
||||||
getFileType,
|
getFileType,
|
||||||
@@ -24,6 +24,10 @@ import {
|
|||||||
shouldRestoreCache,
|
shouldRestoreCache,
|
||||||
} from "./caching-utils";
|
} from "./caching-utils";
|
||||||
import { CodeQL } from "./codeql";
|
import { CodeQL } from "./codeql";
|
||||||
|
import {
|
||||||
|
EffectiveToolsInputSource,
|
||||||
|
resolveToolsInputWithMetadata,
|
||||||
|
} from "./config/resolve-tools-input";
|
||||||
import * as configUtils from "./config-utils";
|
import * as configUtils from "./config-utils";
|
||||||
import {
|
import {
|
||||||
DependencyCacheRestoreStatusReport,
|
DependencyCacheRestoreStatusReport,
|
||||||
@@ -40,8 +44,8 @@ import {
|
|||||||
import { EnvVar } from "./environment";
|
import { EnvVar } from "./environment";
|
||||||
import { Feature, FeatureEnablement, initFeatures } from "./feature-flags";
|
import { Feature, FeatureEnablement, initFeatures } from "./feature-flags";
|
||||||
import {
|
import {
|
||||||
loadPropertiesFromApi,
|
loadRepositoryProperties,
|
||||||
RepositoryProperties,
|
ToolsModeRepositoryPropertyValue,
|
||||||
} from "./feature-flags/properties";
|
} from "./feature-flags/properties";
|
||||||
import {
|
import {
|
||||||
checkInstallPython311,
|
checkInstallPython311,
|
||||||
@@ -53,14 +57,14 @@ import {
|
|||||||
initConfig,
|
initConfig,
|
||||||
runDatabaseInitCluster,
|
runDatabaseInitCluster,
|
||||||
} from "./init";
|
} from "./init";
|
||||||
import { JavaEnvVars, BuiltInLanguage } from "./languages";
|
import { JavaEnvVars, BuiltInLanguage } from "./languages/index";
|
||||||
import { getActionsLogger, Logger, withGroupAsync } from "./logging";
|
import { getActionsLogger, Logger, withGroupAsync } from "./logging";
|
||||||
import {
|
import {
|
||||||
downloadOverlayBaseDatabaseFromCache,
|
downloadOverlayBaseDatabaseFromCache,
|
||||||
OverlayBaseDatabaseDownloadStats,
|
OverlayBaseDatabaseDownloadStats,
|
||||||
} from "./overlay/caching";
|
} from "./overlay/caching";
|
||||||
import { OverlayDatabaseMode } from "./overlay/overlay-database-mode";
|
import { OverlayDatabaseMode } from "./overlay/overlay-database-mode";
|
||||||
import { getRepositoryNwo, RepositoryNwo } from "./repository";
|
import { getRepositoryNwo } from "./repository";
|
||||||
import { ToolsSource } from "./setup-codeql";
|
import { ToolsSource } from "./setup-codeql";
|
||||||
import {
|
import {
|
||||||
ActionName,
|
ActionName,
|
||||||
@@ -93,10 +97,7 @@ import {
|
|||||||
checkActionVersion,
|
checkActionVersion,
|
||||||
getErrorMessage,
|
getErrorMessage,
|
||||||
BuildMode,
|
BuildMode,
|
||||||
Result,
|
|
||||||
getOptionalEnvVar,
|
getOptionalEnvVar,
|
||||||
Success,
|
|
||||||
Failure,
|
|
||||||
} from "./util";
|
} from "./util";
|
||||||
import { checkWorkflow } from "./workflow";
|
import { checkWorkflow } from "./workflow";
|
||||||
|
|
||||||
@@ -140,6 +141,9 @@ async function sendCompletedStatusReport(
|
|||||||
toolsFeatureFlagsValid: boolean | undefined,
|
toolsFeatureFlagsValid: boolean | undefined,
|
||||||
toolsSource: ToolsSource,
|
toolsSource: ToolsSource,
|
||||||
toolsVersion: string,
|
toolsVersion: string,
|
||||||
|
effectiveToolsInput: string | undefined,
|
||||||
|
effectiveToolsInputSource: EffectiveToolsInputSource,
|
||||||
|
toolsRepoPropertyMode: ToolsModeRepositoryPropertyValue | undefined,
|
||||||
overlayBaseDatabaseStats: OverlayBaseDatabaseDownloadStats | undefined,
|
overlayBaseDatabaseStats: OverlayBaseDatabaseDownloadStats | undefined,
|
||||||
dependencyCachingResults: DependencyCacheRestoreStatusReport | undefined,
|
dependencyCachingResults: DependencyCacheRestoreStatusReport | undefined,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
@@ -165,6 +169,9 @@ async function sendCompletedStatusReport(
|
|||||||
const initStatusReport: InitStatusReport = {
|
const initStatusReport: InitStatusReport = {
|
||||||
...statusReportBase,
|
...statusReportBase,
|
||||||
tools_input: getOptionalInput("tools") || "",
|
tools_input: getOptionalInput("tools") || "",
|
||||||
|
effective_tools_input: effectiveToolsInput || "",
|
||||||
|
effective_tools_input_source: effectiveToolsInputSource,
|
||||||
|
tools_repo_property_mode: toolsRepoPropertyMode || "",
|
||||||
tools_resolved_version: toolsVersion,
|
tools_resolved_version: toolsVersion,
|
||||||
tools_source: toolsSource || ToolsSource.Unknown,
|
tools_source: toolsSource || ToolsSource.Unknown,
|
||||||
workflow_languages: workflowLanguages || "",
|
workflow_languages: workflowLanguages || "",
|
||||||
@@ -219,6 +226,9 @@ async function run(startedAt: Date) {
|
|||||||
let toolsSource: ToolsSource;
|
let toolsSource: ToolsSource;
|
||||||
let toolsVersion: string;
|
let toolsVersion: string;
|
||||||
let zstdAvailability: ZstdAvailability | undefined;
|
let zstdAvailability: ZstdAvailability | undefined;
|
||||||
|
let effectiveToolsInput: string | undefined;
|
||||||
|
let effectiveToolsInputSource: EffectiveToolsInputSource;
|
||||||
|
let toolsRepoPropertyMode: ToolsModeRepositoryPropertyValue | undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
initializeEnvironment(getActionVersion());
|
initializeEnvironment(getActionVersion());
|
||||||
@@ -251,6 +261,7 @@ async function run(startedAt: Date) {
|
|||||||
repositoryNwo,
|
repositoryNwo,
|
||||||
logger,
|
logger,
|
||||||
);
|
);
|
||||||
|
const repositoryProperties = repositoryPropertiesResult.orElse({});
|
||||||
|
|
||||||
// Create a unique identifier for this run.
|
// Create a unique identifier for this run.
|
||||||
const jobRunUuid = uuidV4();
|
const jobRunUuid = uuidV4();
|
||||||
@@ -296,6 +307,21 @@ async function run(startedAt: Date) {
|
|||||||
const codeQLDefaultVersionInfo =
|
const codeQLDefaultVersionInfo =
|
||||||
await features.getEnabledDefaultCliVersions(gitHubVersion.type);
|
await features.getEnabledDefaultCliVersions(gitHubVersion.type);
|
||||||
toolsFeatureFlagsValid = codeQLDefaultVersionInfo.toolsFeatureFlagsValid;
|
toolsFeatureFlagsValid = codeQLDefaultVersionInfo.toolsFeatureFlagsValid;
|
||||||
|
|
||||||
|
// Determine the effective tools input.
|
||||||
|
// The explicit `tools` workflow input takes precedence. If none is provided,
|
||||||
|
// fall back to the 'github-codeql-tools' repository property (if set).
|
||||||
|
// If 'github-codeql-tools-mode' is set to 'dynamic', this fallback applies
|
||||||
|
// only to dynamic workflows. Otherwise, it applies to all workflows.
|
||||||
|
const resolvedToolsInput = resolveToolsInputWithMetadata(
|
||||||
|
getOptionalInput("tools"),
|
||||||
|
isDynamicWorkflow(),
|
||||||
|
repositoryProperties,
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
effectiveToolsInput = resolvedToolsInput.effectiveToolsInput;
|
||||||
|
effectiveToolsInputSource = resolvedToolsInput.effectiveToolsInputSource;
|
||||||
|
toolsRepoPropertyMode = resolvedToolsInput.toolsRepoPropertyMode;
|
||||||
const rawLanguages = configUtils.getRawLanguagesNoAutodetect(
|
const rawLanguages = configUtils.getRawLanguagesNoAutodetect(
|
||||||
getOptionalInput("languages"),
|
getOptionalInput("languages"),
|
||||||
);
|
);
|
||||||
@@ -303,7 +329,7 @@ async function run(startedAt: Date) {
|
|||||||
analysisKinds?.length === 1 &&
|
analysisKinds?.length === 1 &&
|
||||||
analysisKinds[0] === AnalysisKind.CodeScanning;
|
analysisKinds[0] === AnalysisKind.CodeScanning;
|
||||||
const initCodeQLResult = await initCodeQL(
|
const initCodeQLResult = await initCodeQL(
|
||||||
getOptionalInput("tools"),
|
effectiveToolsInput,
|
||||||
apiDetails,
|
apiDetails,
|
||||||
getTemporaryDirectory(),
|
getTemporaryDirectory(),
|
||||||
gitHubVersion.type,
|
gitHubVersion.type,
|
||||||
@@ -350,7 +376,6 @@ async function run(startedAt: Date) {
|
|||||||
|
|
||||||
analysisKinds = await getAnalysisKinds(logger, features);
|
analysisKinds = await getAnalysisKinds(logger, features);
|
||||||
const debugMode = getOptionalInput("debug") === "true" || core.isDebug();
|
const debugMode = getOptionalInput("debug") === "true" || core.isDebug();
|
||||||
const repositoryProperties = repositoryPropertiesResult.orElse({});
|
|
||||||
const fileCoverageResult = await getFileCoverageInformationEnabled(
|
const fileCoverageResult = await getFileCoverageInformationEnabled(
|
||||||
debugMode,
|
debugMode,
|
||||||
codeql,
|
codeql,
|
||||||
@@ -769,6 +794,9 @@ async function run(startedAt: Date) {
|
|||||||
toolsFeatureFlagsValid,
|
toolsFeatureFlagsValid,
|
||||||
toolsSource,
|
toolsSource,
|
||||||
toolsVersion,
|
toolsVersion,
|
||||||
|
effectiveToolsInput,
|
||||||
|
effectiveToolsInputSource,
|
||||||
|
toolsRepoPropertyMode,
|
||||||
overlayBaseDatabaseStats,
|
overlayBaseDatabaseStats,
|
||||||
dependencyCachingStatus,
|
dependencyCachingStatus,
|
||||||
logger,
|
logger,
|
||||||
@@ -786,44 +814,15 @@ async function run(startedAt: Date) {
|
|||||||
toolsFeatureFlagsValid,
|
toolsFeatureFlagsValid,
|
||||||
toolsSource,
|
toolsSource,
|
||||||
toolsVersion,
|
toolsVersion,
|
||||||
|
effectiveToolsInput,
|
||||||
|
effectiveToolsInputSource,
|
||||||
|
toolsRepoPropertyMode,
|
||||||
overlayBaseDatabaseStats,
|
overlayBaseDatabaseStats,
|
||||||
dependencyCachingStatus,
|
dependencyCachingStatus,
|
||||||
logger,
|
logger,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Loads [repository properties](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization) if applicable.
|
|
||||||
*/
|
|
||||||
async function loadRepositoryProperties(
|
|
||||||
repositoryNwo: RepositoryNwo,
|
|
||||||
logger: Logger,
|
|
||||||
): Promise<Result<RepositoryProperties, unknown>> {
|
|
||||||
// See if we can skip loading repository properties early. In particular,
|
|
||||||
// repositories owned by users cannot have repository properties, so we can
|
|
||||||
// skip the API call entirely in that case.
|
|
||||||
const repositoryOwnerType = github.context.payload.repository?.owner.type;
|
|
||||||
logger.debug(
|
|
||||||
`Repository owner type is '${repositoryOwnerType ?? "unknown"}'.`,
|
|
||||||
);
|
|
||||||
if (repositoryOwnerType === "User") {
|
|
||||||
logger.debug(
|
|
||||||
"Skipping loading repository properties because the repository is owned by a user and " +
|
|
||||||
"therefore cannot have repository properties.",
|
|
||||||
);
|
|
||||||
return new Success({});
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
return new Success(await loadPropertiesFromApi(logger, repositoryNwo));
|
|
||||||
} catch (error) {
|
|
||||||
logger.warning(
|
|
||||||
`Failed to load repository properties: ${getErrorMessage(error)}`,
|
|
||||||
);
|
|
||||||
return new Failure(error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function recordZstdAvailability(
|
async function recordZstdAvailability(
|
||||||
config: configUtils.Config,
|
config: configUtils.Config,
|
||||||
zstdAvailability: ZstdAvailability,
|
zstdAvailability: ZstdAvailability,
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ import {
|
|||||||
getFileCoverageInformationEnabled,
|
getFileCoverageInformationEnabled,
|
||||||
logFileCoverageOnPrsDeprecationWarning,
|
logFileCoverageOnPrsDeprecationWarning,
|
||||||
} from "./init";
|
} from "./init";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import {
|
import {
|
||||||
createFeatures,
|
createFeatures,
|
||||||
LoggedMessage,
|
LoggedMessage,
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ import {
|
|||||||
RepositoryProperties,
|
RepositoryProperties,
|
||||||
RepositoryPropertyName,
|
RepositoryPropertyName,
|
||||||
} from "./feature-flags/properties";
|
} from "./feature-flags/properties";
|
||||||
import { BuiltInLanguage, Language } from "./languages";
|
import { BuiltInLanguage, Language } from "./languages/index";
|
||||||
import { Logger, withGroupAsync } from "./logging";
|
import { Logger, withGroupAsync } from "./logging";
|
||||||
import { ToolsSource } from "./setup-codeql";
|
import { ToolsSource } from "./setup-codeql";
|
||||||
import { ZstdAvailability } from "./tar";
|
import { ZstdAvailability } from "./tar";
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import * as core from "@actions/core";
|
|||||||
import { v4 as uuidV4 } from "uuid";
|
import { v4 as uuidV4 } from "uuid";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
isDynamicWorkflow,
|
||||||
getActionVersion,
|
getActionVersion,
|
||||||
getOptionalInput,
|
getOptionalInput,
|
||||||
getRequiredInput,
|
getRequiredInput,
|
||||||
@@ -10,9 +11,17 @@ import {
|
|||||||
import { AnalysisKind, getAnalysisKinds } from "./analyses";
|
import { AnalysisKind, getAnalysisKinds } from "./analyses";
|
||||||
import { getGitHubVersion } from "./api-client";
|
import { getGitHubVersion } from "./api-client";
|
||||||
import { CodeQL } from "./codeql";
|
import { CodeQL } from "./codeql";
|
||||||
|
import {
|
||||||
|
EffectiveToolsInputSource,
|
||||||
|
resolveToolsInputWithMetadata,
|
||||||
|
} from "./config/resolve-tools-input";
|
||||||
import { getRawLanguagesNoAutodetect } from "./config-utils";
|
import { getRawLanguagesNoAutodetect } from "./config-utils";
|
||||||
import { EnvVar } from "./environment";
|
import { EnvVar } from "./environment";
|
||||||
import { initFeatures } from "./feature-flags";
|
import { initFeatures } from "./feature-flags";
|
||||||
|
import {
|
||||||
|
loadRepositoryProperties,
|
||||||
|
ToolsModeRepositoryPropertyValue,
|
||||||
|
} from "./feature-flags/properties";
|
||||||
import { initCodeQL } from "./init";
|
import { initCodeQL } from "./init";
|
||||||
import { getActionsLogger, Logger } from "./logging";
|
import { getActionsLogger, Logger } from "./logging";
|
||||||
import { getRepositoryNwo } from "./repository";
|
import { getRepositoryNwo } from "./repository";
|
||||||
@@ -48,6 +57,9 @@ async function sendCompletedStatusReport(
|
|||||||
toolsFeatureFlagsValid: boolean | undefined,
|
toolsFeatureFlagsValid: boolean | undefined,
|
||||||
toolsSource: ToolsSource,
|
toolsSource: ToolsSource,
|
||||||
toolsVersion: string,
|
toolsVersion: string,
|
||||||
|
effectiveToolsInput: string | undefined,
|
||||||
|
effectiveToolsInputSource: EffectiveToolsInputSource,
|
||||||
|
toolsRepoPropertyMode: ToolsModeRepositoryPropertyValue | undefined,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
error?: Error,
|
error?: Error,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
@@ -69,6 +81,9 @@ async function sendCompletedStatusReport(
|
|||||||
const initStatusReport: InitStatusReport = {
|
const initStatusReport: InitStatusReport = {
|
||||||
...statusReportBase,
|
...statusReportBase,
|
||||||
tools_input: getOptionalInput("tools") || "",
|
tools_input: getOptionalInput("tools") || "",
|
||||||
|
effective_tools_input: effectiveToolsInput || "",
|
||||||
|
effective_tools_input_source: effectiveToolsInputSource,
|
||||||
|
tools_repo_property_mode: toolsRepoPropertyMode || "",
|
||||||
tools_resolved_version: toolsVersion,
|
tools_resolved_version: toolsVersion,
|
||||||
tools_source: toolsSource || ToolsSource.Unknown,
|
tools_source: toolsSource || ToolsSource.Unknown,
|
||||||
workflow_languages: "",
|
workflow_languages: "",
|
||||||
@@ -99,6 +114,9 @@ async function run(startedAt: Date): Promise<void> {
|
|||||||
let toolsFeatureFlagsValid: boolean | undefined;
|
let toolsFeatureFlagsValid: boolean | undefined;
|
||||||
let toolsSource: ToolsSource;
|
let toolsSource: ToolsSource;
|
||||||
let toolsVersion: string;
|
let toolsVersion: string;
|
||||||
|
let effectiveToolsInput: string | undefined;
|
||||||
|
let effectiveToolsInputSource: EffectiveToolsInputSource;
|
||||||
|
let toolsRepoPropertyMode: ToolsModeRepositoryPropertyValue | undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
initializeEnvironment(getActionVersion());
|
initializeEnvironment(getActionVersion());
|
||||||
@@ -141,12 +159,35 @@ async function run(startedAt: Date): Promise<void> {
|
|||||||
const codeQLDefaultVersionInfo =
|
const codeQLDefaultVersionInfo =
|
||||||
await features.getEnabledDefaultCliVersions(gitHubVersion.type);
|
await features.getEnabledDefaultCliVersions(gitHubVersion.type);
|
||||||
toolsFeatureFlagsValid = codeQLDefaultVersionInfo.toolsFeatureFlagsValid;
|
toolsFeatureFlagsValid = codeQLDefaultVersionInfo.toolsFeatureFlagsValid;
|
||||||
|
|
||||||
|
// Fetch the values of known repository properties that affect us.
|
||||||
|
const repositoryPropertiesResult = await loadRepositoryProperties(
|
||||||
|
repositoryNwo,
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
const repositoryProperties = repositoryPropertiesResult.orElse({});
|
||||||
|
|
||||||
|
// Determine the effective tools input.
|
||||||
|
// The explicit `tools` workflow input takes precedence. If none is provided,
|
||||||
|
// fall back to the 'github-codeql-tools' repository property (if set).
|
||||||
|
// If 'github-codeql-tools-mode' is set to 'dynamic', this fallback applies
|
||||||
|
// only to dynamic workflows. Otherwise, it applies to all workflows.
|
||||||
|
const resolvedToolsInput = resolveToolsInputWithMetadata(
|
||||||
|
getOptionalInput("tools"),
|
||||||
|
isDynamicWorkflow(),
|
||||||
|
repositoryProperties,
|
||||||
|
logger,
|
||||||
|
);
|
||||||
|
effectiveToolsInput = resolvedToolsInput.effectiveToolsInput;
|
||||||
|
effectiveToolsInputSource = resolvedToolsInput.effectiveToolsInputSource;
|
||||||
|
toolsRepoPropertyMode = resolvedToolsInput.toolsRepoPropertyMode;
|
||||||
const rawLanguages = getRawLanguagesNoAutodetect(
|
const rawLanguages = getRawLanguagesNoAutodetect(
|
||||||
getOptionalInput("languages"),
|
getOptionalInput("languages"),
|
||||||
);
|
);
|
||||||
const analysisKinds = await getAnalysisKinds(logger, features);
|
const analysisKinds = await getAnalysisKinds(logger, features);
|
||||||
|
|
||||||
const initCodeQLResult = await initCodeQL(
|
const initCodeQLResult = await initCodeQL(
|
||||||
getOptionalInput("tools"),
|
effectiveToolsInput,
|
||||||
apiDetails,
|
apiDetails,
|
||||||
getTemporaryDirectory(),
|
getTemporaryDirectory(),
|
||||||
gitHubVersion.type,
|
gitHubVersion.type,
|
||||||
@@ -191,6 +232,9 @@ async function run(startedAt: Date): Promise<void> {
|
|||||||
toolsFeatureFlagsValid,
|
toolsFeatureFlagsValid,
|
||||||
toolsSource,
|
toolsSource,
|
||||||
toolsVersion,
|
toolsVersion,
|
||||||
|
effectiveToolsInput,
|
||||||
|
effectiveToolsInputSource,
|
||||||
|
toolsRepoPropertyMode,
|
||||||
logger,
|
logger,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -559,7 +559,7 @@ export async function getCodeQLSource(
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
if (allowToolcacheValueFF) {
|
if (allowToolcacheValueFF) {
|
||||||
logger.warning(
|
logger.info(
|
||||||
`Ignoring 'tools: ${toolsInput}' because the workflow was not triggered dynamically.`,
|
`Ignoring 'tools: ${toolsInput}' because the workflow was not triggered dynamically.`,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import * as core from "@actions/core";
|
|||||||
import * as actionsUtil from "./actions-util";
|
import * as actionsUtil from "./actions-util";
|
||||||
import { getGitHubVersion } from "./api-client";
|
import { getGitHubVersion } from "./api-client";
|
||||||
import { Feature, FeatureEnablement, initFeatures } from "./feature-flags";
|
import { Feature, FeatureEnablement, initFeatures } from "./feature-flags";
|
||||||
import { BuiltInLanguage, parseBuiltInLanguage } from "./languages";
|
import { BuiltInLanguage, parseBuiltInLanguage } from "./languages/index";
|
||||||
import { getActionsLogger, Logger } from "./logging";
|
import { getActionsLogger, Logger } from "./logging";
|
||||||
import { getRepositoryNwo } from "./repository";
|
import { getRepositoryNwo } from "./repository";
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import * as defaults from "./defaults.json";
|
|||||||
import { setUpFeatureFlagTests } from "./feature-flags/testing-util";
|
import { setUpFeatureFlagTests } from "./feature-flags/testing-util";
|
||||||
import { UnvalidatedObject, validateSchema } from "./json";
|
import { UnvalidatedObject, validateSchema } from "./json";
|
||||||
import { makeFromSchema } from "./json/testing-util";
|
import { makeFromSchema } from "./json/testing-util";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import { getRunnerLogger, Logger } from "./logging";
|
import { getRunnerLogger, Logger } from "./logging";
|
||||||
import * as startProxyExports from "./start-proxy";
|
import * as startProxyExports from "./start-proxy";
|
||||||
import * as statusReport from "./status-report";
|
import * as statusReport from "./status-report";
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ import {
|
|||||||
FeatureEnablement,
|
FeatureEnablement,
|
||||||
} from "./feature-flags";
|
} from "./feature-flags";
|
||||||
import * as json from "./json";
|
import * as json from "./json";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import { Logger } from "./logging";
|
import { Logger } from "./logging";
|
||||||
import {
|
import {
|
||||||
Address,
|
Address,
|
||||||
|
|||||||
@@ -2,9 +2,10 @@ import test from "ava";
|
|||||||
import * as sinon from "sinon";
|
import * as sinon from "sinon";
|
||||||
|
|
||||||
import * as actionsUtil from "./actions-util";
|
import * as actionsUtil from "./actions-util";
|
||||||
|
import { EffectiveToolsInputSource } from "./config/resolve-tools-input";
|
||||||
import { Config } from "./config-utils";
|
import { Config } from "./config-utils";
|
||||||
import { EnvVar } from "./environment";
|
import { EnvVar } from "./environment";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import { getRunnerLogger } from "./logging";
|
import { getRunnerLogger } from "./logging";
|
||||||
import { ToolsSource } from "./setup-codeql";
|
import { ToolsSource } from "./setup-codeql";
|
||||||
import {
|
import {
|
||||||
@@ -316,6 +317,9 @@ const testCreateInitWithConfigStatusReport = makeMacro({
|
|||||||
const initStatusReport: InitStatusReport = {
|
const initStatusReport: InitStatusReport = {
|
||||||
...statusReportBase,
|
...statusReportBase,
|
||||||
tools_input: "",
|
tools_input: "",
|
||||||
|
effective_tools_input: "",
|
||||||
|
effective_tools_input_source: EffectiveToolsInputSource.None,
|
||||||
|
tools_repo_property_mode: "",
|
||||||
tools_resolved_version: "foo",
|
tools_resolved_version: "foo",
|
||||||
tools_source: ToolsSource.Unknown,
|
tools_source: ToolsSource.Unknown,
|
||||||
workflow_languages: "actions",
|
workflow_languages: "actions",
|
||||||
@@ -347,6 +351,8 @@ testCreateInitWithConfigStatusReport.serial(
|
|||||||
languages: [BuiltInLanguage.java, BuiltInLanguage.swift],
|
languages: [BuiltInLanguage.java, BuiltInLanguage.swift],
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
|
effective_tools_input_source: EffectiveToolsInputSource.None,
|
||||||
|
tools_repo_property_mode: "",
|
||||||
trap_cache_download_size_bytes: 1024,
|
trap_cache_download_size_bytes: 1024,
|
||||||
registries: "[]",
|
registries: "[]",
|
||||||
query_filters: "[]",
|
query_filters: "[]",
|
||||||
@@ -354,6 +360,63 @@ testCreateInitWithConfigStatusReport.serial(
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
test.serial(
|
||||||
|
"createInitWithConfigStatusReport preserves tools telemetry fields",
|
||||||
|
async (t) => {
|
||||||
|
await withTmpDir(async (tmpDir: string) => {
|
||||||
|
setupEnvironmentAndStub(tmpDir);
|
||||||
|
|
||||||
|
const config = createTestConfig({
|
||||||
|
buildMode: BuildMode.None,
|
||||||
|
languages: [BuiltInLanguage.java],
|
||||||
|
});
|
||||||
|
|
||||||
|
const statusReportBase = await createStatusReportBase(
|
||||||
|
ActionName.Init,
|
||||||
|
"failure",
|
||||||
|
new Date("May 19, 2023 05:19:00"),
|
||||||
|
config,
|
||||||
|
{ numAvailableBytes: 100, numTotalBytes: 500 },
|
||||||
|
getRunnerLogger(false),
|
||||||
|
"failure cause",
|
||||||
|
"exception stack trace",
|
||||||
|
);
|
||||||
|
|
||||||
|
if (t.truthy(statusReportBase)) {
|
||||||
|
const initStatusReport: InitStatusReport = {
|
||||||
|
...statusReportBase,
|
||||||
|
tools_input: "",
|
||||||
|
effective_tools_input: "toolcache",
|
||||||
|
effective_tools_input_source:
|
||||||
|
EffectiveToolsInputSource.RepositoryProperty,
|
||||||
|
tools_repo_property_mode: "dynamic",
|
||||||
|
tools_resolved_version: "foo",
|
||||||
|
tools_source: ToolsSource.Unknown,
|
||||||
|
workflow_languages: "actions",
|
||||||
|
};
|
||||||
|
|
||||||
|
const initWithConfigStatusReport =
|
||||||
|
await createInitWithConfigStatusReport(
|
||||||
|
config,
|
||||||
|
initStatusReport,
|
||||||
|
undefined,
|
||||||
|
1024,
|
||||||
|
undefined,
|
||||||
|
undefined,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (t.truthy(initWithConfigStatusReport)) {
|
||||||
|
t.is(
|
||||||
|
initWithConfigStatusReport.effective_tools_input_source,
|
||||||
|
EffectiveToolsInputSource.RepositoryProperty,
|
||||||
|
);
|
||||||
|
t.is(initWithConfigStatusReport.tools_repo_property_mode, "dynamic");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
testCreateInitWithConfigStatusReport.serial(
|
testCreateInitWithConfigStatusReport.serial(
|
||||||
"includes packs for a single language",
|
"includes packs for a single language",
|
||||||
createTestConfig({
|
createTestConfig({
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import {
|
|||||||
isSelfHostedRunner,
|
isSelfHostedRunner,
|
||||||
} from "./actions-util";
|
} from "./actions-util";
|
||||||
import { getAnalysisKey, getApiClient } from "./api-client";
|
import { getAnalysisKey, getApiClient } from "./api-client";
|
||||||
|
import { EffectiveToolsInputSource } from "./config/resolve-tools-input";
|
||||||
import { parseRegistriesWithoutCredentials, type Config } from "./config-utils";
|
import { parseRegistriesWithoutCredentials, type Config } from "./config-utils";
|
||||||
import { DependencyCacheRestoreStatusReport } from "./dependency-caching";
|
import { DependencyCacheRestoreStatusReport } from "./dependency-caching";
|
||||||
import { DocUrl } from "./doc-url";
|
import { DocUrl } from "./doc-url";
|
||||||
@@ -482,6 +483,12 @@ export async function sendStatusReport<S extends StatusReportBase>(
|
|||||||
export interface InitStatusReport extends StatusReportBase {
|
export interface InitStatusReport extends StatusReportBase {
|
||||||
/** Value given by the user as the "tools" input. */
|
/** Value given by the user as the "tools" input. */
|
||||||
tools_input: string;
|
tools_input: string;
|
||||||
|
/** The effective tools input that was used, after applying defaults and repository properties. */
|
||||||
|
effective_tools_input: string;
|
||||||
|
/** Indicates where the effective tools input was resolved from. */
|
||||||
|
effective_tools_input_source: EffectiveToolsInputSource;
|
||||||
|
/** The value of the tools repository property mode, if relevant. */
|
||||||
|
tools_repo_property_mode: string;
|
||||||
/** Version of the bundle used. */
|
/** Version of the bundle used. */
|
||||||
tools_resolved_version: string;
|
tools_resolved_version: string;
|
||||||
/** Where the bundle originated from. */
|
/** Where the bundle originated from. */
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import * as sinon from "sinon";
|
|||||||
|
|
||||||
import { CodeQL, getCodeQLForTesting } from "./codeql";
|
import { CodeQL, getCodeQLForTesting } from "./codeql";
|
||||||
import * as configUtils from "./config-utils";
|
import * as configUtils from "./config-utils";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import { createTestConfig, makeVersionInfo, setupTests } from "./testing-utils";
|
import { createTestConfig, makeVersionInfo, setupTests } from "./testing-utils";
|
||||||
import { ToolsFeature } from "./tools-features";
|
import { ToolsFeature } from "./tools-features";
|
||||||
import { getCombinedTracerConfig } from "./tracer-config";
|
import { getCombinedTracerConfig } from "./tracer-config";
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import {
|
|||||||
import * as configUtils from "./config-utils";
|
import * as configUtils from "./config-utils";
|
||||||
import { Feature } from "./feature-flags";
|
import { Feature } from "./feature-flags";
|
||||||
import * as gitUtils from "./git-utils";
|
import * as gitUtils from "./git-utils";
|
||||||
import { BuiltInLanguage } from "./languages";
|
import { BuiltInLanguage } from "./languages/index";
|
||||||
import { getRunnerLogger } from "./logging";
|
import { getRunnerLogger } from "./logging";
|
||||||
import {
|
import {
|
||||||
createFeatures,
|
createFeatures,
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ import { type Config } from "./config-utils";
|
|||||||
import { DocUrl } from "./doc-url";
|
import { DocUrl } from "./doc-url";
|
||||||
import { Feature, FeatureEnablement } from "./feature-flags";
|
import { Feature, FeatureEnablement } from "./feature-flags";
|
||||||
import * as gitUtils from "./git-utils";
|
import * as gitUtils from "./git-utils";
|
||||||
import { Language } from "./languages";
|
import { Language } from "./languages/index";
|
||||||
import { Logger } from "./logging";
|
import { Logger } from "./logging";
|
||||||
import {
|
import {
|
||||||
asHTTPError,
|
asHTTPError,
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ import type { Pack } from "./config/db-config";
|
|||||||
import type { Config } from "./config-utils";
|
import type { Config } from "./config-utils";
|
||||||
import { EnvVar } from "./environment";
|
import { EnvVar } from "./environment";
|
||||||
import * as json from "./json";
|
import * as json from "./json";
|
||||||
import { Language } from "./languages";
|
import { Language } from "./languages/index";
|
||||||
import { Logger } from "./logging";
|
import { Logger } from "./logging";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -29,6 +29,6 @@ outputs:
|
|||||||
proxy_urls:
|
proxy_urls:
|
||||||
description: A stringified JSON array of objects containing the types and URLs of the configured registries.
|
description: A stringified JSON array of objects containing the types and URLs of the configured registries.
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node24
|
||||||
main: "../lib/start-proxy-entry.js"
|
main: "../lib/start-proxy-entry.js"
|
||||||
post: "../lib/start-proxy-post-entry.js"
|
post: "../lib/start-proxy-post-entry.js"
|
||||||
|
|||||||
@@ -41,6 +41,6 @@ outputs:
|
|||||||
|
|
||||||
{ "code-scanning": "some-id", "code-quality": "some-other-id" }
|
{ "code-scanning": "some-id", "code-quality": "some-other-id" }
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node24
|
||||||
main: '../lib/upload-sarif-entry.js'
|
main: '../lib/upload-sarif-entry.js'
|
||||||
post: '../lib/upload-sarif-post-entry.js'
|
post: '../lib/upload-sarif-post-entry.js'
|
||||||
|
|||||||
Reference in New Issue
Block a user