Add GitHub Copilot Chat Support (#14842)

# Summary

This commit implements Github Copilot Chat support within the existing
Assistant panel/framework. It required a little bit of trickery and
internal API modification, as Copilot doesn't use the same
authentication-style as all of the existing providers, opting to use
OAuth and a short lived API key instead of a straight API key. All
existing Assistant features should work.

Release Notes:
- Added Github Copilot Chat support
([#4673](https://github.com/zed-industries/zed/issues/4673)).

## Screenshots
<img width="1552" alt="A screenshot showing a conversation between a
user and Github Copilot Chat within the Zed editor."
src="https://github.com/user-attachments/assets/73eaf6a2-792b-4c40-a7fe-f763bd6417d7">

---------

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
This commit is contained in:
Ryan Hawkins 2024-07-30 01:32:58 -06:00 committed by GitHub
parent d93891ba63
commit 6f0655810e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 808 additions and 14 deletions

7
Cargo.lock generated
View file

@ -2749,6 +2749,7 @@ dependencies = [
"async-compression",
"async-std",
"async-tar",
"chrono",
"client",
"clock",
"collections",
@ -2759,6 +2760,7 @@ dependencies = [
"gpui",
"http_client",
"indoc",
"isahc",
"language",
"lsp",
"menu",
@ -2767,10 +2769,13 @@ dependencies = [
"paths",
"project",
"rpc",
"schemars",
"serde",
"serde_json",
"settings",
"smol",
"strum",
"task",
"theme",
"ui",
"util",
@ -6020,6 +6025,7 @@ dependencies = [
"anyhow",
"client",
"collections",
"copilot",
"ctor",
"editor",
"env_logger",
@ -6028,6 +6034,7 @@ dependencies = [
"google_ai",
"gpui",
"http_client",
"inline_completion_button",
"language",
"log",
"menu",