-
Notifications
You must be signed in to change notification settings - Fork 141
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: add undici ProxyAgent support for GitHub Enterprise Server behind proxies #1104
Conversation
…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 environments Fixes issue where @semantic-release/github cannot connect through corporate proxies due to undici's fetch implementation not respecting the agent option. The solution provides both legacy agent support and new undici ProxyAgent dispatcher for modern Octokit versions that use undici as their fetch implementation.
|
This is spectacular, I just encountered this issue myself. Thanks for the fix, @rb-mwindh! |
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 fully trust @gr2m's review for functionality here, but before we merge this, would you mind updating the proxy references in the readme, @rb-mwindh? that would help folks find the details of how to leverage this update properly. thanks!
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.
|
🎉 This PR is included in version 12.0.2 🎉 The release is available on: Your semantic-release bot 📦🚀 |
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.