Skip to content

Always clean-up temp dirs in withTmpDir - #4141

Open
mario-campos wants to merge 1 commit into
mainfrom
mario-campos/finally-clean-withTmpDir
Open

Always clean-up temp dirs in withTmpDir#4141
mario-campos wants to merge 1 commit into
mainfrom
mario-campos/finally-clean-withTmpDir

Conversation

@mario-campos

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.

@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
@github-actions github-actions Bot added the size/XS Should be very easy to review label Sep 10, 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.

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.

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 });
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XS Should be very easy to review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants