- Notifications
You must be signed in to change notification settings - Fork142
fix: add undici ProxyAgent support for GitHub Enterprise Server behind proxies#1104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Open
rb-mwindh wants to merge2 commits intosemantic-release:masterChoose a base branch fromrb-mwindh:fix/proxy-support-with-undici
base:master
Could not load branches
Branch not found:{{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline, and old review comments may become outdated.
Open
fix: add undici ProxyAgent support for GitHub Enterprise Server behind proxies#1104
rb-mwindh wants to merge2 commits intosemantic-release:masterfromrb-mwindh:fix/proxy-support-with-undici
+196 −13
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
…d proxies- Add undici ProxyAgent as dispatcher in custom fetch function- Maintain backwards compatibility with existing agent option- Add comprehensive unit tests for proxy functionality- Fix proxy support for GitHub Enterprise Server environmentsFixes issue where @semantic-release/github cannot connect throughcorporate proxies due to undici's fetch implementation notrespecting the agent option.The solution provides both legacy agent support and new undiciProxyAgent dispatcher for modern Octokit versions that use undicias their fetch implementation.
nickv-work commentedOct 26, 2025 • edited by heartsbot
Loading Uh oh!
There was an error while loading.Please reload this page.
edited by heartsbot
Uh oh!
There was an error while loading.Please reload this page.
This is spectacular, I just encountered this issue myself. Thanks for the fix,@rb-mwindh! |
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
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.
Uh oh!
There was an error while loading.Please reload this page.
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.