copilot: Support HTTP/HTTPS proxy for Copilot language server #24364
+102
−7
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.
Closes #6701 (one of the top ranking issues as of writing)
Adds the ability to specify an HTTP/HTTPS proxy to route Copilot code completion API requests through. This should fix copilot functionality in restricted network environments (where such a proxy is required) but also opens up the ability to point copilot code completion requests at your own local LLM, using e.g.:
External MITM-proxy tools permitting, this can serve as a stop-gap to allow local LLM code completion in Zed until a proper OpenAI-compatible local code completions provider is implemented. With this in mind, in this PR I've added separate
settings.json
variables to configure a proxy server specific to the code completions provider instead of using the globalproxy
setting, to allow for cases like this where we only want to proxy e.g. the Copilot requests, but not all outgoing traffic from the application.Currently, two new settings are added:
inline_completions.copilot.proxy
: Proxy server URL (HTTP and HTTPS schemes supported)inline_completions.copilot.proxy_no_verify
: Whether to disable certificate verification through the proxyExample:
Release Notes: