GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Use `json` module for JSON validation in `output-cache` by mario-campos · Pull Request #4096 · github/codeql-action

Conversation

@mario-campos

@mario-campos mario-campos commented Aug 14, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor
  • Use the included json module to improve (make more readable) the validation of the output of codeql version.
  • Refactor getCachedCodeQlVersion and cacheCodeQlVersion to accept the cache-file-path as an argument, rather than construct it; this makes it easier to test.
  • Change the VersionInfo type to be derived from its JSON schema.

Risk assessment

For internal use only. Please select the risk level of this change:

  • Low risk: Changes are fully under feature flags, or have been fully tested and validated in pre-production environments and are highly observable, or are documentation or test only.

Which use cases does this change impact?

Workflow types:

  • Advanced setup - Impacts users who have custom CodeQL workflows.
  • Managed - Impacts users with dynamic workflows (Default Setup, Code Quality, ...).

Products:

  • Code Scanning - The changes impact analyses when analysis-kinds: code-scanning.
  • Code Quality - The changes impact analyses when analysis-kinds: code-quality.

Environments:

  • Dotcom - Impacts CodeQL workflows on github.com and/or GitHub Enterprise Cloud with Data Residency.
  • GHES - Impacts CodeQL workflows on GitHub Enterprise Server.

How did/will you validate this change?

  • Unit tests - I am depending on unit test coverage (i.e. tests in .test.ts files).
  • End-to-end tests - I am depending on PR checks (i.e. tests in pr-checks).

If something goes wrong after this change is released, what are the mitigation and rollback strategies?

  • Rollback - Change can only be disabled by rolling back the release or releasing a new version with a fix.

How will you know if something goes wrong after this change is released?

  • Telemetry - I rely on existing telemetry or have made changes to the telemetry.
    • Alerts - New or existing monitors will trip if something goes wrong with this change.

Are there any special considerations for merging or releasing this change?

  • No special considerations - This change can be merged at any time.

Merge / deployment checklist

  • Confirm this change is backwards compatible with existing workflows.
  • Consider adding a changelog entry for this change.
  • Confirm the readme and docs have been updated if necessary.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mario-campos
mario-campos requested review from mbg and a balanced review from Copilot August 14, 2026 04:19
@mario-campos
mario-campos requested a review from a team as a code owner August 14, 2026 04:19
@github-actions github-actions Bot added the size/S Should be easy to review label Aug 14, 2026
@mario-campos
Use json module for JSON validation in output-cache
93d793c
Copilot started reviewing on behalf of mario-campos August 14, 2026 04:19
View session
@mario-campos
mario-campos force-pushed the mario-campos/use-json-module branch from 1a0c458 to 93d793c Compare August 14, 2026 04:19
Copilot AI reviewed Aug 14, 2026
View reviewed changes

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors output-cache validation to use shared JSON schema utilities.

Changes:

  • Validates version information using JSON schemas.
  • Validates cache entries before accessing the cached version.
Show a summary per file
File Description
src/cli/output-cache.ts Replaces manual checks with shared JSON validators.

Review details

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 1/2 changed files
  • Comments generated: 1
  • Review effort level: Balanced

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread src/cli/output-cache.ts Resolved

Uh oh!

There was an error while loading. Please reload this page.

mbg
mbg reviewed Aug 14, 2026
View reviewed changes

@mbg mbg left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks OK, but a good catch from Copilot there that we missed on the previous PR. I also added a comment about avoiding the disconnect between the schema and VersionInfo type. When using the json module for schemas, it is desirable to derive the corresponding type with FromSchema to avoid them going out of sync.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread src/cli/output-cache.ts Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread src/cli/output-cache.ts Resolved

Uh oh!

There was an error while loading. Please reload this page.

mario-campos added 4 commits August 14, 2026 10:55
@mario-campos
Export getCommandCacheFilePath function for use in tests
cb9d39f
@mario-campos
Refactor tests to use getCommandCacheFilePath
d7d901a
As well as fixup a few other problems.
@mario-campos
Refactor isVersionInfo with json module
c8ba2d2
@mario-campos
Refactor OutputCache with json module
f3deecb
mbg
mbg reviewed Aug 14, 2026
View reviewed changes
Comment thread src/cli/types.ts Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread src/cli/output-cache.test.ts Resolved

Uh oh!

There was an error while loading. Please reload this page.

@mbg

mbg commented Aug 14, 2026

Copy link
Copy Markdown
Member

@mario-campos Also looks like the linter check is failing again. If you haven't already enabled editor.formatOnSave, that might be a useful thing to do to help prevent this.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

mario-campos added 4 commits August 14, 2026 14:05
@mario-campos
Delete unnecessary statement from JSDoc comments
b60777a
@mario-campos
Fix VersionInfo derived type to pass linter
1f46830
@mario-campos
Refactor tests in output-cache.test.ts to use named imports from `o…
b5d3438
…utput-cache`
@mario-campos
Refactor output-caching functions to accept file path dependency
fcd8d74
This makes it easier to test. Credit to @mbg.
@github-actions github-actions Bot added size/M Should be of average difficulty to review and removed size/S Should be easy to review labels Aug 14, 2026
@mario-campos

mario-campos commented Aug 14, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

Also looks like the linter check is failing again.

That was a downstream (in tools-feature.ts) effect of the changes made to VersionInfo. It resulted in VersionInfo.features having type any, despite the override. Copilot suggested using Omit<> to fix it, so I did.

That being said, I wonder if it would be better to define a JSON validator for VersionInfo.features such that we can derive VersionInfo directly from its schema?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@mario-campos
mario-campos requested a review from mbg August 19, 2026 18:29
@mario-campos mario-campos mentioned this pull request Aug 19, 2026
Cache CLI extractor paths across Actions steps #3950
Closed
mbg
mbg approved these changes Sep 1, 2026
View reviewed changes
@mario-campos
mario-campos added this pull request to the merge queue Sep 1, 2026
Merged via the queue into main with commit a0c7312 Sep 1, 2026
222 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@mario-campos
mario-campos deleted the mario-campos/use-json-module branch September 1, 2026 15:31
@github-actions github-actions Bot mentioned this pull request Sep 9, 2026
Merge main into releases/v4 #4131
Merged
8 tasks
@github-actions github-actions Bot mentioned this pull request Sep 9, 2026
Merge releases/v4 into releases/v3 #4133
Merged
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

Copilot code review Copilot
Copilot review effort
Applies to this pull request for everyone.Learn more about Copilot code review.
Copilot left review comments
@mbg mbg mbg approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

size/M Should be of average difficulty to review

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@mario-campos @mbg
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.