Skip to content

Remove TRAP cache cleanup - #4243

Open
henrymercer wants to merge 4 commits into
mainfrom
henrymercer/remove-trap-cache-cleanup
Open

henrymercer wants to merge 4 commits into
mainfrom
henrymercer/remove-trap-cache-cleanup

Conversation

@henrymercer

Copy link
Copy Markdown
Contributor

Follows the deprecation in #3795, which announced that TRAP cache cleanup would be removed in May 2026.

We add a warning when the CODEQL_ACTION_CLEANUP_TRAP_CACHES environment variable is set, since it no longer has any effect.

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.
  • Other first-party - The changes impact other first-party analyses.

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.

henrymercer and others added 2 commits October 16, 2026 14:00
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI max review requested due to automatic review settings October 16, 2026 13:02
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added the size/L May be hard to review label Oct 16, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Warning

  • Copilot's review of this pull request may be incomplete because some of the changed files are excluded by your Copilot content exclusion settings. See Excluding content from Copilot for details.

🟢 Approval recommended

The removal is consistent, the warning has focused coverage, and remaining feedback is non-blocking.

1 open finding
What changed in this PR

Removes deprecated TRAP cache cleanup from the CodeQL Action while preserving TRAP caching itself.

Changes:

  • Removes cleanup logic, configuration, API support, and telemetry.
  • Adds a warning for the obsolete environment variable, with unit coverage.
File Description
src/​trap-caching.ts Replaces cleanup with an obsolete-variable warning.
src/​trap-caching.test.ts Replaces cleanup tests with warning tests.
src/​feature-flags.ts Removes the cleanup feature flag.
src/​doc-url.ts Removes the unused permissions documentation URL.
src/​api-client.ts Removes the cache-deletion helper.
src/​analyze-action.ts Integrates the warning and removes cleanup telemetry.
Files excluded by content exclusion policy (1)
  • lib/entry-points.js

🧠 Review effort: Max


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

Comment thread src/trap-caching.ts

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Warning

  • Copilot's review of this pull request may be incomplete because some of the changed files are excluded by your Copilot content exclusion settings. See Excluding content from Copilot for details.

🟢 Approval recommended

The focused removal consistently updates callers and includes tests for the replacement warning.

0 open findings

1 resolved since last review
Files excluded by content exclusion policy (1)
  • lib/entry-points.js

🧠 Review effort: Max

@henrymercer
henrymercer marked this pull request as ready for review October 16, 2026 13:24
@henrymercer
henrymercer requested a review from a team as a code owner October 16, 2026 13:24
mbg
mbg previously approved these changes Oct 16, 2026

@mbg mbg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Makes sense, thanks for cleaning up. A couple of minor comments, but nothing blocking.

Comment thread unreleased-change-notes/remove-trap-cache-cleanup.md Outdated
Comment thread src/trap-caching.ts
logger,
}: ActionState<["Logger", "ReadOnlyEnv"]>): void {
if (env.getOptional("CODEQL_ACTION_CLEANUP_TRAP_CACHES") !== undefined) {
logger.warning(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is a good example of where those logging changes we discussed on my PR are useful. (Now in a separate PR at #4235)

Comment thread src/trap-caching.test.ts
Comment on lines +212 to 215
t.deepEqual(
target.getLogger().messages.map((m) => m.type),
["warning"],
);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Minor: Perhaps worth modifying the logs/notLogs methods, or adding new ones, to BaseEnvBuilder in testing-utils.ts to allow these assertions to be chained with the target.passes call.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good idea, but I'll leave this to a future PR.

Comment thread src/api-client.ts
*
* See https://docs.github.com/en/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id.
*/
export async function deleteActionsCache(id: number) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm mildly conscious that we might need this again in the future since we still have other cache usage, but it's easy enough to add back in if needed.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The annoying thing is this requires actions: write, which we'd rather most of our jobs didn't have. This kind of API is best suited for a dedicated Action to minimize the code that has the actions: write permission.

Co-authored-by: Michael B. Gale <mbg@github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/L May be hard to review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants