mirror of
https://github.com/github/codeql-action.git
synced 2026-06-03 04:14:33 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bab673d0e0 | |||
| 8ed7f7c384 | |||
| 0ad7c1f95e | |||
| 25c25b5e09 |
@@ -16,5 +16,5 @@ inputs:
|
||||
Comma separated list of query ids that should NOT be included in this SARIF file.
|
||||
|
||||
runs:
|
||||
using: node20
|
||||
using: node24
|
||||
main: index.js
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: Verify that the best-effort debug artifact scan completed
|
||||
description: Verifies that the best-effort debug artifact scan completed successfully during tests
|
||||
runs:
|
||||
using: node20
|
||||
using: node24
|
||||
main: index.js
|
||||
post: post.js
|
||||
|
||||
+46
-34
@@ -2,28 +2,32 @@
|
||||
|
||||
See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs.
|
||||
|
||||
## 3.36.1 - 02 Jun 2026
|
||||
## [UNRELEASED]
|
||||
|
||||
No user facing changes.
|
||||
|
||||
## 3.36.0 - 22 May 2026
|
||||
## 4.36.1 - 02 Jun 2026
|
||||
|
||||
No user facing changes.
|
||||
|
||||
## 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)
|
||||
- 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)
|
||||
|
||||
## 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)
|
||||
- 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)
|
||||
- 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)
|
||||
|
||||
## 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)
|
||||
- Configurations for private registries that use Cloudsmith or GCP OIDC are now accepted. [#3850](https://github.com/github/codeql-action/pull/3850)
|
||||
@@ -31,7 +35,7 @@ No user facing changes.
|
||||
- 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)
|
||||
|
||||
## 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 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)
|
||||
@@ -39,28 +43,29 @@ No user facing changes.
|
||||
- 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)
|
||||
|
||||
## 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)
|
||||
|
||||
## 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)
|
||||
- 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)
|
||||
|
||||
## 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)
|
||||
- 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)
|
||||
|
||||
## 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)
|
||||
|
||||
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.
|
||||
- **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.
|
||||
@@ -71,11 +76,11 @@ No user facing changes.
|
||||
- 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)
|
||||
|
||||
## 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)
|
||||
|
||||
## 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)
|
||||
- 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)
|
||||
@@ -85,7 +90,7 @@ No user facing changes.
|
||||
- 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)
|
||||
|
||||
## 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)
|
||||
- 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)
|
||||
@@ -93,88 +98,88 @@ No user facing changes.
|
||||
- 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)
|
||||
|
||||
## 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)
|
||||
|
||||
## 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)
|
||||
|
||||
## 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)
|
||||
- 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)
|
||||
|
||||
## 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)
|
||||
- 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)
|
||||
- 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)
|
||||
|
||||
## 3.31.9 - 16 Dec 2025
|
||||
## 4.31.9 - 16 Dec 2025
|
||||
|
||||
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)
|
||||
|
||||
## 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)
|
||||
|
||||
## 3.31.6 - 01 Dec 2025
|
||||
## 4.31.6 - 01 Dec 2025
|
||||
|
||||
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)
|
||||
|
||||
## 3.31.4 - 18 Nov 2025
|
||||
## 4.31.4 - 18 Nov 2025
|
||||
|
||||
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/).
|
||||
- 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.
|
||||
|
||||
## 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.
|
||||
|
||||
## 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)
|
||||
- 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)
|
||||
- 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.
|
||||
|
||||
## 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
|
||||
|
||||
@@ -410,13 +415,17 @@ No user facing changes.
|
||||
## 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)
|
||||
|
||||
- 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.
|
||||
|
||||
## 3.26.11 - 03 Oct 2024
|
||||
|
||||
- _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.
|
||||
|
||||
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)
|
||||
|
||||
@@ -539,9 +548,12 @@ No user facing changes.
|
||||
## 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)
|
||||
|
||||
As a result, the following inputs and environment variables are now ignored:
|
||||
|
||||
- The `setup-python-dependencies` input to the `init` Action
|
||||
- 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.
|
||||
- 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)
|
||||
|
||||
+1
-1
@@ -94,6 +94,6 @@ outputs:
|
||||
sarif-id:
|
||||
description: The ID of the uploaded SARIF file.
|
||||
runs:
|
||||
using: node20
|
||||
using: node24
|
||||
main: "../lib/analyze-entry.js"
|
||||
post: "../lib/analyze-post-entry.js"
|
||||
|
||||
@@ -15,5 +15,5 @@ inputs:
|
||||
$GITHUB_WORKSPACE as its working directory.
|
||||
required: false
|
||||
runs:
|
||||
using: node20
|
||||
using: node24
|
||||
main: '../lib/autobuild-entry.js'
|
||||
|
||||
+1
-1
@@ -170,6 +170,6 @@ outputs:
|
||||
codeql-version:
|
||||
description: The version of the CodeQL binary used for analysis
|
||||
runs:
|
||||
using: node20
|
||||
using: node24
|
||||
main: '../lib/init-entry.js'
|
||||
post: '../lib/init-post-entry.js'
|
||||
|
||||
Generated
+140
-120
@@ -19179,12 +19179,12 @@ var require_lib = __commonJS({
|
||||
throw new Error("Client has already been disposed.");
|
||||
}
|
||||
const parsedUrl = new URL(requestUrl);
|
||||
let info7 = this._prepareRequest(verb, parsedUrl, headers);
|
||||
let info8 = this._prepareRequest(verb, parsedUrl, headers);
|
||||
const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1;
|
||||
let numTries = 0;
|
||||
let response;
|
||||
do {
|
||||
response = yield this.requestRaw(info7, data);
|
||||
response = yield this.requestRaw(info8, data);
|
||||
if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) {
|
||||
let authenticationHandler;
|
||||
for (const handler2 of this.handlers) {
|
||||
@@ -19194,7 +19194,7 @@ var require_lib = __commonJS({
|
||||
}
|
||||
}
|
||||
if (authenticationHandler) {
|
||||
return authenticationHandler.handleAuthentication(this, info7, data);
|
||||
return authenticationHandler.handleAuthentication(this, info8, data);
|
||||
} else {
|
||||
return response;
|
||||
}
|
||||
@@ -19217,8 +19217,8 @@ var require_lib = __commonJS({
|
||||
}
|
||||
}
|
||||
}
|
||||
info7 = this._prepareRequest(verb, parsedRedirectUrl, headers);
|
||||
response = yield this.requestRaw(info7, data);
|
||||
info8 = this._prepareRequest(verb, parsedRedirectUrl, headers);
|
||||
response = yield this.requestRaw(info8, data);
|
||||
redirectsRemaining--;
|
||||
}
|
||||
if (!response.message.statusCode || !HttpResponseRetryCodes.includes(response.message.statusCode)) {
|
||||
@@ -19247,7 +19247,7 @@ var require_lib = __commonJS({
|
||||
* @param info
|
||||
* @param data
|
||||
*/
|
||||
requestRaw(info7, data) {
|
||||
requestRaw(info8, data) {
|
||||
return __awaiter2(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve13, reject) => {
|
||||
function callbackForResult(err, res) {
|
||||
@@ -19259,7 +19259,7 @@ var require_lib = __commonJS({
|
||||
resolve13(res);
|
||||
}
|
||||
}
|
||||
this.requestRawWithCallback(info7, data, callbackForResult);
|
||||
this.requestRawWithCallback(info8, data, callbackForResult);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -19269,12 +19269,12 @@ var require_lib = __commonJS({
|
||||
* @param data
|
||||
* @param onResult
|
||||
*/
|
||||
requestRawWithCallback(info7, data, onResult) {
|
||||
requestRawWithCallback(info8, data, onResult) {
|
||||
if (typeof data === "string") {
|
||||
if (!info7.options.headers) {
|
||||
info7.options.headers = {};
|
||||
if (!info8.options.headers) {
|
||||
info8.options.headers = {};
|
||||
}
|
||||
info7.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8");
|
||||
info8.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8");
|
||||
}
|
||||
let callbackCalled = false;
|
||||
function handleResult(err, res) {
|
||||
@@ -19283,7 +19283,7 @@ var require_lib = __commonJS({
|
||||
onResult(err, res);
|
||||
}
|
||||
}
|
||||
const req = info7.httpModule.request(info7.options, (msg) => {
|
||||
const req = info8.httpModule.request(info8.options, (msg) => {
|
||||
const res = new HttpClientResponse(msg);
|
||||
handleResult(void 0, res);
|
||||
});
|
||||
@@ -19295,7 +19295,7 @@ var require_lib = __commonJS({
|
||||
if (socket) {
|
||||
socket.end();
|
||||
}
|
||||
handleResult(new Error(`Request timeout: ${info7.options.path}`));
|
||||
handleResult(new Error(`Request timeout: ${info8.options.path}`));
|
||||
});
|
||||
req.on("error", function(err) {
|
||||
handleResult(err);
|
||||
@@ -19331,27 +19331,27 @@ var require_lib = __commonJS({
|
||||
return this._getProxyAgentDispatcher(parsedUrl, proxyUrl);
|
||||
}
|
||||
_prepareRequest(method, requestUrl, headers) {
|
||||
const info7 = {};
|
||||
info7.parsedUrl = requestUrl;
|
||||
const usingSsl = info7.parsedUrl.protocol === "https:";
|
||||
info7.httpModule = usingSsl ? https3 : http;
|
||||
const info8 = {};
|
||||
info8.parsedUrl = requestUrl;
|
||||
const usingSsl = info8.parsedUrl.protocol === "https:";
|
||||
info8.httpModule = usingSsl ? https3 : http;
|
||||
const defaultPort = usingSsl ? 443 : 80;
|
||||
info7.options = {};
|
||||
info7.options.host = info7.parsedUrl.hostname;
|
||||
info7.options.port = info7.parsedUrl.port ? parseInt(info7.parsedUrl.port) : defaultPort;
|
||||
info7.options.path = (info7.parsedUrl.pathname || "") + (info7.parsedUrl.search || "");
|
||||
info7.options.method = method;
|
||||
info7.options.headers = this._mergeHeaders(headers);
|
||||
info8.options = {};
|
||||
info8.options.host = info8.parsedUrl.hostname;
|
||||
info8.options.port = info8.parsedUrl.port ? parseInt(info8.parsedUrl.port) : defaultPort;
|
||||
info8.options.path = (info8.parsedUrl.pathname || "") + (info8.parsedUrl.search || "");
|
||||
info8.options.method = method;
|
||||
info8.options.headers = this._mergeHeaders(headers);
|
||||
if (this.userAgent != null) {
|
||||
info7.options.headers["user-agent"] = this.userAgent;
|
||||
info8.options.headers["user-agent"] = this.userAgent;
|
||||
}
|
||||
info7.options.agent = this._getAgent(info7.parsedUrl);
|
||||
info8.options.agent = this._getAgent(info8.parsedUrl);
|
||||
if (this.handlers) {
|
||||
for (const handler2 of this.handlers) {
|
||||
handler2.prepareRequest(info7.options);
|
||||
handler2.prepareRequest(info8.options);
|
||||
}
|
||||
}
|
||||
return info7;
|
||||
return info8;
|
||||
}
|
||||
_mergeHeaders(headers) {
|
||||
if (this.requestOptions && this.requestOptions.headers) {
|
||||
@@ -21406,7 +21406,7 @@ var require_core = __commonJS({
|
||||
exports2.error = error3;
|
||||
exports2.warning = warning14;
|
||||
exports2.notice = notice;
|
||||
exports2.info = info7;
|
||||
exports2.info = info8;
|
||||
exports2.startGroup = startGroup4;
|
||||
exports2.endGroup = endGroup4;
|
||||
exports2.group = group;
|
||||
@@ -21503,7 +21503,7 @@ Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);
|
||||
function notice(message, properties = {}) {
|
||||
(0, command_1.issueCommand)("notice", (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);
|
||||
}
|
||||
function info7(message) {
|
||||
function info8(message) {
|
||||
process.stdout.write(message + os7.EOL);
|
||||
}
|
||||
function startGroup4(name) {
|
||||
@@ -42402,12 +42402,12 @@ var require_operationHelpers = __commonJS({
|
||||
if (hasOriginalRequest(request3)) {
|
||||
return getOperationRequestInfo(request3[originalRequestSymbol]);
|
||||
}
|
||||
let info7 = state_js_1.state.operationRequestMap.get(request3);
|
||||
if (!info7) {
|
||||
info7 = {};
|
||||
state_js_1.state.operationRequestMap.set(request3, info7);
|
||||
let info8 = state_js_1.state.operationRequestMap.get(request3);
|
||||
if (!info8) {
|
||||
info8 = {};
|
||||
state_js_1.state.operationRequestMap.set(request3, info8);
|
||||
}
|
||||
return info7;
|
||||
return info8;
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -76954,9 +76954,9 @@ var require_reflection_type_check = __commonJS({
|
||||
var reflection_info_1 = require_reflection_info();
|
||||
var oneof_1 = require_oneof();
|
||||
var ReflectionTypeCheck = class {
|
||||
constructor(info7) {
|
||||
constructor(info8) {
|
||||
var _a;
|
||||
this.fields = (_a = info7.fields) !== null && _a !== void 0 ? _a : [];
|
||||
this.fields = (_a = info8.fields) !== null && _a !== void 0 ? _a : [];
|
||||
}
|
||||
prepare() {
|
||||
if (this.data)
|
||||
@@ -77202,8 +77202,8 @@ var require_reflection_json_reader = __commonJS({
|
||||
var assert_1 = require_assert();
|
||||
var reflection_long_convert_1 = require_reflection_long_convert();
|
||||
var ReflectionJsonReader = class {
|
||||
constructor(info7) {
|
||||
this.info = info7;
|
||||
constructor(info8) {
|
||||
this.info = info8;
|
||||
}
|
||||
prepare() {
|
||||
var _a;
|
||||
@@ -77499,9 +77499,9 @@ var require_reflection_json_writer = __commonJS({
|
||||
var reflection_info_1 = require_reflection_info();
|
||||
var assert_1 = require_assert();
|
||||
var ReflectionJsonWriter = class {
|
||||
constructor(info7) {
|
||||
constructor(info8) {
|
||||
var _a;
|
||||
this.fields = (_a = info7.fields) !== null && _a !== void 0 ? _a : [];
|
||||
this.fields = (_a = info8.fields) !== null && _a !== void 0 ? _a : [];
|
||||
}
|
||||
/**
|
||||
* Converts the message to a JSON object, based on the field descriptors.
|
||||
@@ -77754,8 +77754,8 @@ var require_reflection_binary_reader = __commonJS({
|
||||
var reflection_long_convert_1 = require_reflection_long_convert();
|
||||
var reflection_scalar_default_1 = require_reflection_scalar_default();
|
||||
var ReflectionBinaryReader = class {
|
||||
constructor(info7) {
|
||||
this.info = info7;
|
||||
constructor(info8) {
|
||||
this.info = info8;
|
||||
}
|
||||
prepare() {
|
||||
var _a;
|
||||
@@ -77928,8 +77928,8 @@ var require_reflection_binary_writer = __commonJS({
|
||||
var assert_1 = require_assert();
|
||||
var pb_long_1 = require_pb_long();
|
||||
var ReflectionBinaryWriter = class {
|
||||
constructor(info7) {
|
||||
this.info = info7;
|
||||
constructor(info8) {
|
||||
this.info = info8;
|
||||
}
|
||||
prepare() {
|
||||
if (!this.fields) {
|
||||
@@ -78179,9 +78179,9 @@ var require_reflection_merge_partial = __commonJS({
|
||||
"use strict";
|
||||
Object.defineProperty(exports2, "__esModule", { value: true });
|
||||
exports2.reflectionMergePartial = void 0;
|
||||
function reflectionMergePartial(info7, target, source) {
|
||||
function reflectionMergePartial(info8, target, source) {
|
||||
let fieldValue, input = source, output;
|
||||
for (let field of info7.fields) {
|
||||
for (let field of info8.fields) {
|
||||
let name = field.localName;
|
||||
if (field.oneof) {
|
||||
const group = input[field.oneof];
|
||||
@@ -78250,12 +78250,12 @@ var require_reflection_equals = __commonJS({
|
||||
Object.defineProperty(exports2, "__esModule", { value: true });
|
||||
exports2.reflectionEquals = void 0;
|
||||
var reflection_info_1 = require_reflection_info();
|
||||
function reflectionEquals(info7, a, b) {
|
||||
function reflectionEquals(info8, a, b) {
|
||||
if (a === b)
|
||||
return true;
|
||||
if (!a || !b)
|
||||
return false;
|
||||
for (let field of info7.fields) {
|
||||
for (let field of info8.fields) {
|
||||
let localName = field.localName;
|
||||
let val_a = field.oneof ? a[field.oneof][localName] : a[localName];
|
||||
let val_b = field.oneof ? b[field.oneof][localName] : b[localName];
|
||||
@@ -91275,7 +91275,7 @@ var require_async = __commonJS({
|
||||
}
|
||||
}
|
||||
var sortBy$1 = awaitify(sortBy, 3);
|
||||
function timeout(asyncFn, milliseconds, info7) {
|
||||
function timeout(asyncFn, milliseconds, info8) {
|
||||
var fn = wrapAsync(asyncFn);
|
||||
return initialParams((args, callback) => {
|
||||
var timedOut = false;
|
||||
@@ -91284,8 +91284,8 @@ var require_async = __commonJS({
|
||||
var name = asyncFn.name || "anonymous";
|
||||
var error3 = new Error('Callback function "' + name + '" timed out.');
|
||||
error3.code = "ETIMEDOUT";
|
||||
if (info7) {
|
||||
error3.info = info7;
|
||||
if (info8) {
|
||||
error3.info = info8;
|
||||
}
|
||||
timedOut = true;
|
||||
callback(error3);
|
||||
@@ -114681,12 +114681,12 @@ var require_lib4 = __commonJS({
|
||||
throw new Error("Client has already been disposed.");
|
||||
}
|
||||
const parsedUrl = new URL(requestUrl);
|
||||
let info7 = this._prepareRequest(verb, parsedUrl, headers);
|
||||
let info8 = this._prepareRequest(verb, parsedUrl, headers);
|
||||
const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1;
|
||||
let numTries = 0;
|
||||
let response;
|
||||
do {
|
||||
response = yield this.requestRaw(info7, data);
|
||||
response = yield this.requestRaw(info8, data);
|
||||
if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) {
|
||||
let authenticationHandler;
|
||||
for (const handler2 of this.handlers) {
|
||||
@@ -114696,7 +114696,7 @@ var require_lib4 = __commonJS({
|
||||
}
|
||||
}
|
||||
if (authenticationHandler) {
|
||||
return authenticationHandler.handleAuthentication(this, info7, data);
|
||||
return authenticationHandler.handleAuthentication(this, info8, data);
|
||||
} else {
|
||||
return response;
|
||||
}
|
||||
@@ -114719,8 +114719,8 @@ var require_lib4 = __commonJS({
|
||||
}
|
||||
}
|
||||
}
|
||||
info7 = this._prepareRequest(verb, parsedRedirectUrl, headers);
|
||||
response = yield this.requestRaw(info7, data);
|
||||
info8 = this._prepareRequest(verb, parsedRedirectUrl, headers);
|
||||
response = yield this.requestRaw(info8, data);
|
||||
redirectsRemaining--;
|
||||
}
|
||||
if (!response.message.statusCode || !HttpResponseRetryCodes.includes(response.message.statusCode)) {
|
||||
@@ -114749,7 +114749,7 @@ var require_lib4 = __commonJS({
|
||||
* @param info
|
||||
* @param data
|
||||
*/
|
||||
requestRaw(info7, data) {
|
||||
requestRaw(info8, data) {
|
||||
return __awaiter2(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve13, reject) => {
|
||||
function callbackForResult(err, res) {
|
||||
@@ -114761,7 +114761,7 @@ var require_lib4 = __commonJS({
|
||||
resolve13(res);
|
||||
}
|
||||
}
|
||||
this.requestRawWithCallback(info7, data, callbackForResult);
|
||||
this.requestRawWithCallback(info8, data, callbackForResult);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -114771,12 +114771,12 @@ var require_lib4 = __commonJS({
|
||||
* @param data
|
||||
* @param onResult
|
||||
*/
|
||||
requestRawWithCallback(info7, data, onResult) {
|
||||
requestRawWithCallback(info8, data, onResult) {
|
||||
if (typeof data === "string") {
|
||||
if (!info7.options.headers) {
|
||||
info7.options.headers = {};
|
||||
if (!info8.options.headers) {
|
||||
info8.options.headers = {};
|
||||
}
|
||||
info7.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8");
|
||||
info8.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8");
|
||||
}
|
||||
let callbackCalled = false;
|
||||
function handleResult(err, res) {
|
||||
@@ -114785,7 +114785,7 @@ var require_lib4 = __commonJS({
|
||||
onResult(err, res);
|
||||
}
|
||||
}
|
||||
const req = info7.httpModule.request(info7.options, (msg) => {
|
||||
const req = info8.httpModule.request(info8.options, (msg) => {
|
||||
const res = new HttpClientResponse(msg);
|
||||
handleResult(void 0, res);
|
||||
});
|
||||
@@ -114797,7 +114797,7 @@ var require_lib4 = __commonJS({
|
||||
if (socket) {
|
||||
socket.end();
|
||||
}
|
||||
handleResult(new Error(`Request timeout: ${info7.options.path}`));
|
||||
handleResult(new Error(`Request timeout: ${info8.options.path}`));
|
||||
});
|
||||
req.on("error", function(err) {
|
||||
handleResult(err);
|
||||
@@ -114833,27 +114833,27 @@ var require_lib4 = __commonJS({
|
||||
return this._getProxyAgentDispatcher(parsedUrl, proxyUrl);
|
||||
}
|
||||
_prepareRequest(method, requestUrl, headers) {
|
||||
const info7 = {};
|
||||
info7.parsedUrl = requestUrl;
|
||||
const usingSsl = info7.parsedUrl.protocol === "https:";
|
||||
info7.httpModule = usingSsl ? https3 : http;
|
||||
const info8 = {};
|
||||
info8.parsedUrl = requestUrl;
|
||||
const usingSsl = info8.parsedUrl.protocol === "https:";
|
||||
info8.httpModule = usingSsl ? https3 : http;
|
||||
const defaultPort = usingSsl ? 443 : 80;
|
||||
info7.options = {};
|
||||
info7.options.host = info7.parsedUrl.hostname;
|
||||
info7.options.port = info7.parsedUrl.port ? parseInt(info7.parsedUrl.port) : defaultPort;
|
||||
info7.options.path = (info7.parsedUrl.pathname || "") + (info7.parsedUrl.search || "");
|
||||
info7.options.method = method;
|
||||
info7.options.headers = this._mergeHeaders(headers);
|
||||
info8.options = {};
|
||||
info8.options.host = info8.parsedUrl.hostname;
|
||||
info8.options.port = info8.parsedUrl.port ? parseInt(info8.parsedUrl.port) : defaultPort;
|
||||
info8.options.path = (info8.parsedUrl.pathname || "") + (info8.parsedUrl.search || "");
|
||||
info8.options.method = method;
|
||||
info8.options.headers = this._mergeHeaders(headers);
|
||||
if (this.userAgent != null) {
|
||||
info7.options.headers["user-agent"] = this.userAgent;
|
||||
info8.options.headers["user-agent"] = this.userAgent;
|
||||
}
|
||||
info7.options.agent = this._getAgent(info7.parsedUrl);
|
||||
info8.options.agent = this._getAgent(info8.parsedUrl);
|
||||
if (this.handlers) {
|
||||
for (const handler2 of this.handlers) {
|
||||
handler2.prepareRequest(info7.options);
|
||||
handler2.prepareRequest(info8.options);
|
||||
}
|
||||
}
|
||||
return info7;
|
||||
return info8;
|
||||
}
|
||||
_mergeHeaders(headers) {
|
||||
if (this.requestOptions && this.requestOptions.headers) {
|
||||
@@ -121241,11 +121241,11 @@ var require_dist_node12 = __commonJS({
|
||||
}
|
||||
async function wrapRequest2(state, request3, options) {
|
||||
const limiter = new Bottleneck2();
|
||||
limiter.on("failed", function(error3, info7) {
|
||||
limiter.on("failed", function(error3, info8) {
|
||||
const maxRetries = ~~error3.request.request.retries;
|
||||
const after = ~~error3.request.request.retryAfter;
|
||||
options.request.retryCount = info7.retryCount + 1;
|
||||
if (maxRetries > info7.retryCount) {
|
||||
options.request.retryCount = info8.retryCount + 1;
|
||||
if (maxRetries > info8.retryCount) {
|
||||
return after * state.retryAfterBaseValue;
|
||||
}
|
||||
});
|
||||
@@ -122453,12 +122453,12 @@ var require_lib5 = __commonJS({
|
||||
throw new Error("Client has already been disposed.");
|
||||
}
|
||||
const parsedUrl = new URL(requestUrl);
|
||||
let info7 = this._prepareRequest(verb, parsedUrl, headers);
|
||||
let info8 = this._prepareRequest(verb, parsedUrl, headers);
|
||||
const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1;
|
||||
let numTries = 0;
|
||||
let response;
|
||||
do {
|
||||
response = yield this.requestRaw(info7, data);
|
||||
response = yield this.requestRaw(info8, data);
|
||||
if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) {
|
||||
let authenticationHandler;
|
||||
for (const handler2 of this.handlers) {
|
||||
@@ -122468,7 +122468,7 @@ var require_lib5 = __commonJS({
|
||||
}
|
||||
}
|
||||
if (authenticationHandler) {
|
||||
return authenticationHandler.handleAuthentication(this, info7, data);
|
||||
return authenticationHandler.handleAuthentication(this, info8, data);
|
||||
} else {
|
||||
return response;
|
||||
}
|
||||
@@ -122491,8 +122491,8 @@ var require_lib5 = __commonJS({
|
||||
}
|
||||
}
|
||||
}
|
||||
info7 = this._prepareRequest(verb, parsedRedirectUrl, headers);
|
||||
response = yield this.requestRaw(info7, data);
|
||||
info8 = this._prepareRequest(verb, parsedRedirectUrl, headers);
|
||||
response = yield this.requestRaw(info8, data);
|
||||
redirectsRemaining--;
|
||||
}
|
||||
if (!response.message.statusCode || !HttpResponseRetryCodes.includes(response.message.statusCode)) {
|
||||
@@ -122521,7 +122521,7 @@ var require_lib5 = __commonJS({
|
||||
* @param info
|
||||
* @param data
|
||||
*/
|
||||
requestRaw(info7, data) {
|
||||
requestRaw(info8, data) {
|
||||
return __awaiter2(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve13, reject) => {
|
||||
function callbackForResult(err, res) {
|
||||
@@ -122533,7 +122533,7 @@ var require_lib5 = __commonJS({
|
||||
resolve13(res);
|
||||
}
|
||||
}
|
||||
this.requestRawWithCallback(info7, data, callbackForResult);
|
||||
this.requestRawWithCallback(info8, data, callbackForResult);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -122543,12 +122543,12 @@ var require_lib5 = __commonJS({
|
||||
* @param data
|
||||
* @param onResult
|
||||
*/
|
||||
requestRawWithCallback(info7, data, onResult) {
|
||||
requestRawWithCallback(info8, data, onResult) {
|
||||
if (typeof data === "string") {
|
||||
if (!info7.options.headers) {
|
||||
info7.options.headers = {};
|
||||
if (!info8.options.headers) {
|
||||
info8.options.headers = {};
|
||||
}
|
||||
info7.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8");
|
||||
info8.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8");
|
||||
}
|
||||
let callbackCalled = false;
|
||||
function handleResult(err, res) {
|
||||
@@ -122557,7 +122557,7 @@ var require_lib5 = __commonJS({
|
||||
onResult(err, res);
|
||||
}
|
||||
}
|
||||
const req = info7.httpModule.request(info7.options, (msg) => {
|
||||
const req = info8.httpModule.request(info8.options, (msg) => {
|
||||
const res = new HttpClientResponse(msg);
|
||||
handleResult(void 0, res);
|
||||
});
|
||||
@@ -122569,7 +122569,7 @@ var require_lib5 = __commonJS({
|
||||
if (socket) {
|
||||
socket.end();
|
||||
}
|
||||
handleResult(new Error(`Request timeout: ${info7.options.path}`));
|
||||
handleResult(new Error(`Request timeout: ${info8.options.path}`));
|
||||
});
|
||||
req.on("error", function(err) {
|
||||
handleResult(err);
|
||||
@@ -122605,27 +122605,27 @@ var require_lib5 = __commonJS({
|
||||
return this._getProxyAgentDispatcher(parsedUrl, proxyUrl);
|
||||
}
|
||||
_prepareRequest(method, requestUrl, headers) {
|
||||
const info7 = {};
|
||||
info7.parsedUrl = requestUrl;
|
||||
const usingSsl = info7.parsedUrl.protocol === "https:";
|
||||
info7.httpModule = usingSsl ? https3 : http;
|
||||
const info8 = {};
|
||||
info8.parsedUrl = requestUrl;
|
||||
const usingSsl = info8.parsedUrl.protocol === "https:";
|
||||
info8.httpModule = usingSsl ? https3 : http;
|
||||
const defaultPort = usingSsl ? 443 : 80;
|
||||
info7.options = {};
|
||||
info7.options.host = info7.parsedUrl.hostname;
|
||||
info7.options.port = info7.parsedUrl.port ? parseInt(info7.parsedUrl.port) : defaultPort;
|
||||
info7.options.path = (info7.parsedUrl.pathname || "") + (info7.parsedUrl.search || "");
|
||||
info7.options.method = method;
|
||||
info7.options.headers = this._mergeHeaders(headers);
|
||||
info8.options = {};
|
||||
info8.options.host = info8.parsedUrl.hostname;
|
||||
info8.options.port = info8.parsedUrl.port ? parseInt(info8.parsedUrl.port) : defaultPort;
|
||||
info8.options.path = (info8.parsedUrl.pathname || "") + (info8.parsedUrl.search || "");
|
||||
info8.options.method = method;
|
||||
info8.options.headers = this._mergeHeaders(headers);
|
||||
if (this.userAgent != null) {
|
||||
info7.options.headers["user-agent"] = this.userAgent;
|
||||
info8.options.headers["user-agent"] = this.userAgent;
|
||||
}
|
||||
info7.options.agent = this._getAgent(info7.parsedUrl);
|
||||
info8.options.agent = this._getAgent(info8.parsedUrl);
|
||||
if (this.handlers) {
|
||||
for (const handler2 of this.handlers) {
|
||||
handler2.prepareRequest(info7.options);
|
||||
handler2.prepareRequest(info8.options);
|
||||
}
|
||||
}
|
||||
return info7;
|
||||
return info8;
|
||||
}
|
||||
_mergeHeaders(headers) {
|
||||
if (this.requestOptions && this.requestOptions.headers) {
|
||||
@@ -124615,10 +124615,10 @@ Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);
|
||||
(0, command_1.issueCommand)("notice", (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);
|
||||
}
|
||||
exports2.notice = notice;
|
||||
function info7(message) {
|
||||
function info8(message) {
|
||||
process.stdout.write(message + os7.EOL);
|
||||
}
|
||||
exports2.info = info7;
|
||||
exports2.info = info8;
|
||||
function startGroup4(name) {
|
||||
(0, command_1.issue)("group", name);
|
||||
}
|
||||
@@ -148062,14 +148062,34 @@ function asHTTPError(arg) {
|
||||
return void 0;
|
||||
}
|
||||
var cachedCodeQlVersion = void 0;
|
||||
function cacheCodeQlVersion(version) {
|
||||
function cacheCodeQlVersion(cmd, version) {
|
||||
if (cachedCodeQlVersion !== void 0) {
|
||||
throw new Error("cacheCodeQlVersion() should be called only once");
|
||||
}
|
||||
cachedCodeQlVersion = version;
|
||||
core3.exportVariable(
|
||||
"CODEQL_ACTION_CLI_VERSION_INFO" /* CODEQL_VERSION_INFO */,
|
||||
JSON.stringify({ cmd, version })
|
||||
);
|
||||
}
|
||||
function getCachedCodeQlVersion() {
|
||||
return cachedCodeQlVersion;
|
||||
function getCachedCodeQlVersion(cmd) {
|
||||
if (cachedCodeQlVersion !== void 0) {
|
||||
return cachedCodeQlVersion;
|
||||
}
|
||||
const serialized = process.env["CODEQL_ACTION_CLI_VERSION_INFO" /* CODEQL_VERSION_INFO */];
|
||||
if (!serialized) {
|
||||
return void 0;
|
||||
}
|
||||
let persisted;
|
||||
try {
|
||||
persisted = JSON.parse(serialized);
|
||||
} catch {
|
||||
return void 0;
|
||||
}
|
||||
if (typeof persisted?.version?.version !== "string" || cmd !== void 0 && persisted.cmd !== cmd) {
|
||||
return void 0;
|
||||
}
|
||||
return persisted.version;
|
||||
}
|
||||
async function codeQlVersionAtLeast(codeql, requiredVersion) {
|
||||
return semver.gte((await codeql.getVersion()).version, requiredVersion);
|
||||
@@ -148366,7 +148386,7 @@ function getDiffRangesJsonFilePath() {
|
||||
return path2.join(getTemporaryDirectory(), PR_DIFF_RANGE_JSON_FILENAME);
|
||||
}
|
||||
function getActionVersion() {
|
||||
return "3.36.1";
|
||||
return "4.36.2";
|
||||
}
|
||||
function getWorkflowEventName() {
|
||||
return getRequiredEnvParam("GITHUB_EVENT_NAME");
|
||||
@@ -148669,11 +148689,11 @@ async function errorRequest(state, octokit, error3, options) {
|
||||
}
|
||||
async function wrapRequest(state, octokit, request3, options) {
|
||||
const limiter = new import_light.default();
|
||||
limiter.on("failed", function(error3, info7) {
|
||||
limiter.on("failed", function(error3, info8) {
|
||||
const maxRetries = ~~error3.request.request?.retries;
|
||||
const after = ~~error3.request.request?.retryAfter;
|
||||
options.request.retryCount = info7.retryCount + 1;
|
||||
if (maxRetries > info7.retryCount) {
|
||||
options.request.retryCount = info8.retryCount + 1;
|
||||
if (maxRetries > info8.retryCount) {
|
||||
return after * state.retryAfterBaseValue;
|
||||
}
|
||||
});
|
||||
@@ -153873,7 +153893,7 @@ async function getCodeQLForCmd(cmd, checkVersion) {
|
||||
return cmd;
|
||||
},
|
||||
async getVersion() {
|
||||
let result = getCachedCodeQlVersion();
|
||||
let result = getCachedCodeQlVersion(cmd);
|
||||
if (result === void 0) {
|
||||
const output = await runCli(cmd, ["version", "--format=json"], {
|
||||
noStreamStdout: true
|
||||
@@ -153885,12 +153905,12 @@ async function getCodeQLForCmd(cmd, checkVersion) {
|
||||
`Invalid JSON output from \`version --format=json\`: ${output}`
|
||||
);
|
||||
}
|
||||
cacheCodeQlVersion(result);
|
||||
cacheCodeQlVersion(cmd, result);
|
||||
}
|
||||
return result;
|
||||
},
|
||||
async printVersion() {
|
||||
await runCli(cmd, ["version", "--format=json"]);
|
||||
core11.info(JSON.stringify(await this.getVersion(), null, 2));
|
||||
},
|
||||
async supportsFeature(feature) {
|
||||
return isSupportedToolsFeature(await this.getVersion(), feature);
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "codeql",
|
||||
"version": "4.36.1",
|
||||
"version": "4.36.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "codeql",
|
||||
"version": "4.36.1",
|
||||
"version": "4.36.2",
|
||||
"license": "MIT",
|
||||
"workspaces": [
|
||||
"pr-checks"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "codeql",
|
||||
"version": "3.36.1",
|
||||
"version": "4.36.2",
|
||||
"private": true,
|
||||
"description": "CodeQL action",
|
||||
"scripts": {
|
||||
|
||||
@@ -21,5 +21,5 @@ outputs:
|
||||
environment:
|
||||
description: The inferred build environment configuration.
|
||||
runs:
|
||||
using: node20
|
||||
using: node24
|
||||
main: '../lib/resolve-environment-entry.js'
|
||||
|
||||
@@ -54,5 +54,5 @@ outputs:
|
||||
codeql-version:
|
||||
description: The version of the CodeQL binary that was installed.
|
||||
runs:
|
||||
using: node20
|
||||
using: node24
|
||||
main: '../lib/setup-codeql-entry.js'
|
||||
|
||||
+4
-3
@@ -523,7 +523,7 @@ async function getCodeQLForCmd(
|
||||
return cmd;
|
||||
},
|
||||
async getVersion() {
|
||||
let result = util.getCachedCodeQlVersion();
|
||||
let result = util.getCachedCodeQlVersion(cmd);
|
||||
if (result === undefined) {
|
||||
const output = await runCli(cmd, ["version", "--format=json"], {
|
||||
noStreamStdout: true,
|
||||
@@ -535,12 +535,13 @@ async function getCodeQLForCmd(
|
||||
`Invalid JSON output from \`version --format=json\`: ${output}`,
|
||||
);
|
||||
}
|
||||
util.cacheCodeQlVersion(result);
|
||||
util.cacheCodeQlVersion(cmd, result);
|
||||
}
|
||||
return result;
|
||||
},
|
||||
async printVersion() {
|
||||
await runCli(cmd, ["version", "--format=json"]);
|
||||
// Reuse the cached version information rather than invoking the CLI again.
|
||||
core.info(JSON.stringify(await this.getVersion(), null, 2));
|
||||
},
|
||||
async supportsFeature(feature: ToolsFeature) {
|
||||
return isSupportedToolsFeature(await this.getVersion(), feature);
|
||||
|
||||
@@ -17,6 +17,12 @@ export enum EnvVar {
|
||||
*/
|
||||
CLI_VERBOSITY = "CODEQL_VERBOSITY",
|
||||
|
||||
/**
|
||||
* `PersistedVersionInfo` for the CodeQL CLI, so later Actions steps can reuse it instead of
|
||||
* invoking `codeql version` again.
|
||||
*/
|
||||
CODEQL_VERSION_INFO = "CODEQL_ACTION_CLI_VERSION_INFO",
|
||||
|
||||
/** Whether the CodeQL Action has invoked the Go autobuilder. */
|
||||
DID_AUTOBUILD_GOLANG = "CODEQL_ACTION_DID_AUTOBUILD_GOLANG",
|
||||
|
||||
|
||||
@@ -532,3 +532,26 @@ test("Failure.orElse returns the default value for a failure result", (t) => {
|
||||
const result = new util.Failure(new Error("test error"));
|
||||
t.is(result.orElse("default value"), "default value");
|
||||
});
|
||||
|
||||
test("getCachedCodeQlVersion reuses a version persisted by an earlier step", (t) => {
|
||||
process.env[EnvVar.CODEQL_VERSION_INFO] = JSON.stringify({
|
||||
cmd: "/path/to/codeql",
|
||||
version: { version: "2.20.0" },
|
||||
});
|
||||
t.deepEqual(util.getCachedCodeQlVersion("/path/to/codeql"), {
|
||||
version: "2.20.0",
|
||||
});
|
||||
});
|
||||
|
||||
test("getCachedCodeQlVersion ignores a persisted version from a different CLI", (t) => {
|
||||
process.env[EnvVar.CODEQL_VERSION_INFO] = JSON.stringify({
|
||||
cmd: "/path/to/other-codeql",
|
||||
version: { version: "2.20.0" },
|
||||
});
|
||||
t.is(util.getCachedCodeQlVersion("/path/to/codeql"), undefined);
|
||||
});
|
||||
|
||||
test("getCachedCodeQlVersion ignores a malformed persisted value", (t) => {
|
||||
process.env[EnvVar.CODEQL_VERSION_INFO] = "not valid json";
|
||||
t.is(util.getCachedCodeQlVersion("/path/to/codeql"), undefined);
|
||||
});
|
||||
|
||||
+39
-3
@@ -619,15 +619,51 @@ export function asHTTPError(arg: any): HTTPError | undefined {
|
||||
|
||||
let cachedCodeQlVersion: undefined | VersionInfo = undefined;
|
||||
|
||||
export function cacheCodeQlVersion(version: VersionInfo): void {
|
||||
/** The persisted version together with the CLI path it was obtained from. */
|
||||
interface PersistedVersionInfo {
|
||||
cmd: string;
|
||||
version: VersionInfo;
|
||||
}
|
||||
|
||||
export function cacheCodeQlVersion(cmd: string, version: VersionInfo): void {
|
||||
if (cachedCodeQlVersion !== undefined) {
|
||||
throw new Error("cacheCodeQlVersion() should be called only once");
|
||||
}
|
||||
cachedCodeQlVersion = version;
|
||||
// Persist the version so that subsequent Actions steps, which run in separate
|
||||
// processes, can reuse it rather than invoking `codeql version` again. We
|
||||
// record the CLI path so that a different step using a different CodeQL bundle
|
||||
// doesn't pick up a stale version.
|
||||
core.exportVariable(
|
||||
EnvVar.CODEQL_VERSION_INFO,
|
||||
JSON.stringify({ cmd, version }),
|
||||
);
|
||||
}
|
||||
|
||||
export function getCachedCodeQlVersion(): undefined | VersionInfo {
|
||||
return cachedCodeQlVersion;
|
||||
export function getCachedCodeQlVersion(cmd?: string): undefined | VersionInfo {
|
||||
if (cachedCodeQlVersion !== undefined) {
|
||||
return cachedCodeQlVersion;
|
||||
}
|
||||
// Fall back to the value persisted by an earlier Actions step, if any. This is
|
||||
// best-effort: any malformed or mismatched value is ignored so that the caller
|
||||
// invokes `codeql version` instead.
|
||||
const serialized = process.env[EnvVar.CODEQL_VERSION_INFO];
|
||||
if (!serialized) {
|
||||
return undefined;
|
||||
}
|
||||
let persisted: PersistedVersionInfo;
|
||||
try {
|
||||
persisted = JSON.parse(serialized) as PersistedVersionInfo;
|
||||
} catch {
|
||||
return undefined;
|
||||
}
|
||||
if (
|
||||
typeof persisted?.version?.version !== "string" ||
|
||||
(cmd !== undefined && persisted.cmd !== cmd)
|
||||
) {
|
||||
return undefined;
|
||||
}
|
||||
return persisted.version;
|
||||
}
|
||||
|
||||
export async function codeQlVersionAtLeast(
|
||||
|
||||
@@ -29,6 +29,6 @@ outputs:
|
||||
proxy_urls:
|
||||
description: A stringified JSON array of objects containing the types and URLs of the configured registries.
|
||||
runs:
|
||||
using: node20
|
||||
using: node24
|
||||
main: "../lib/start-proxy-entry.js"
|
||||
post: "../lib/start-proxy-post-entry.js"
|
||||
|
||||
@@ -41,6 +41,6 @@ outputs:
|
||||
|
||||
{ "code-scanning": "some-id", "code-quality": "some-other-id" }
|
||||
runs:
|
||||
using: node20
|
||||
using: node24
|
||||
main: '../lib/upload-sarif-entry.js'
|
||||
post: '../lib/upload-sarif-post-entry.js'
|
||||
|
||||
Reference in New Issue
Block a user