fix: add undici ProxyAgent support for GitHub Enterprise Server behind proxies #1104
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.
Description
This PR fixes proxy support for GitHub Enterprise Server environments where @semantic-release/github cannot establish connections through corporate proxies.
Problem
The current implementation uses HttpProxyAgent/HttpsProxyAgent with an agent option passed to Octokit's request. However, since Octokit now relies on undici as its fetch implementation, the agent option is no longer respected. Instead, undici expects a dispatcher to be passed into fetch.
Solution
Changes
Enhanced lib/octokit.js:
Added comprehensive tests:
Updated dependencies:
Backwards Compatibility
✅ Full backwards compatibility maintained:
Testing
All tests pass, including:
Related Issue
Fixes the issue described in the GitHub issue where semantic-release fails with 'Connect Timeout Error' when running against GitHub Enterprise Server behind corporate proxies.
Review Notes
The implementation provides both legacy support (agent) and modern support (fetch with dispatcher) to ensure maximum compatibility while fixing the core proxy connectivity issue.