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 — Always clean-up temp dirs in `withTmpDir` by mario-campos · Pull Request #4141 · github/codeql-action

Conversation

@mario-campos

@mario-campos mario-campos commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Wrap the body of withTmpDir in a try/finally so that it always cleans up its temporary directory, even after an exception is thrown.

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:

  • N/A

Products:

  • N/A

Environments:

  • Testing/None - This change does not impact any CodeQL workflows in production.

How did/will you validate this change?

  • Unit tests - I am depending on unit test coverage (i.e. tests in .test.ts files).

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

  • Development/testing only - This change cannot cause any failures in production.

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

  • N/A

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
Always clean-up temp dirs in withTmpDir
80d5f4e
@mario-campos
mario-campos requested a review from a team as a code owner September 10, 2026 23:50
Copilot AI balanced review requested due to automatic review settings September 10, 2026 23:50
Copilot started reviewing on behalf of mario-campos September 10, 2026 23:51
View session
@mario-campos mario-campos mentioned this pull request Sep 10, 2026
Move withTmpFile next to withTmpDir #4140
Merged
@github-actions github-actions Bot added the size/XS Should be very easy to review label Sep 10, 2026
Copilot AI reviewed Sep 10, 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.

Copilot review overview

🟡 Changes recommended

Add a rejection-path unit test verifying temporary-directory cleanup.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Lite
Findings: 1 Low severity

New issues introduced by this change (1)
Severity Finding
Low severity src/​util.ts — Add coverage for cleanup when the body rejects
What changed in this PR

Updates withTmpDir to always clean up temporary directories when the callback fails.

Changes:

  • Wraps callback execution and cleanup in try/finally.
  • Preserves asynchronous callback completion before cleanup.
File Summary
src/​util.ts Ensures cleanup runs on exceptions. Nit (3 votes): add a rejection-path test verifying directory removal.

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

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread src/util.ts
Comment on lines +87 to +90
try {
return await body(tmpDir);
} finally {
await fs.promises.rm(tmpDir, { force: true, recursive: true });

@mbg mbg Sep 11, 2026

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.

I don't think it is necessary to add explicit tests for this, since the try/finally pattern is fairly obviously going to work in the expected way and this is change is an obvious improvement in any case. Additionally, withTmpDir is only used by tests or the pr-checks scripts.

Sorry, something went wrong.

Uh oh!

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

All reactions
@mario-campos mario-campos mentioned this pull request Sep 11, 2026
Validate change-notes as a PR check #4116
Merged
mbg
mbg approved these changes Sep 11, 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.

LGTM, thanks for porting this improvement over to the main codebase.

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread src/util.ts
Comment on lines +87 to +90
try {
return await body(tmpDir);
} finally {
await fs.promises.rm(tmpDir, { force: true, recursive: true });

@mbg mbg Sep 11, 2026

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.

I don't think it is necessary to add explicit tests for this, since the try/finally pattern is fairly obviously going to work in the expected way and this is change is an obvious improvement in any case. Additionally, withTmpDir is only used by tests or the pr-checks scripts.

Sorry, something went wrong.

Uh oh!

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

All reactions
@mbg
mbg added this pull request to the merge queue Sep 11, 2026
Merged via the queue into main with commit 032138d Sep 11, 2026
223 checks passed

Uh oh!

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

@mbg
mbg deleted the mario-campos/finally-clean-withTmpDir branch September 11, 2026 13:25
This was referenced Sep 18, 2026
Merge main into releases/v4 #4152
Merged
Merge releases/v4 into releases/v3 #4154
Merged
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/XS Should be very easy 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.