fix: add undici ProxyAgent support for GitHub Enterprise Server behind proxies#1104
Merged
travi merged 5 commits intosemantic-release:masterfrom Nov 8, 2025
Merged
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! |
gr2m
approved these changes
Nov 7, 2025
travi
requested changes
Nov 7, 2025
Member
There was a problem hiding this comment.
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!
|
🎉 This PR is included in version 12.0.2 🎉 The release is available on: Your semantic-release bot 📦🚀 |
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
Sign up for free
to 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.
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.