ZIm/crates/zed
Marshall Bowers 21bb7242ea
Add CredentialsProvider to silence keychain prompts in development (#25266)
This PR adds a new `CredentialsProvider` trait that abstracts over
interacting with the system keychain.

We had previously introduced a version of this scoped just to Zed auth
in https://github.com/zed-industries/zed/pull/11505.

However, after landing https://github.com/zed-industries/zed/pull/25123,
we now have a similar issue with the credentials for language model
providers that are also stored in the keychain (and thus also produce a
spam of popups when running a development build of Zed).

This PR takes the existing approach and makes it more generic, such that
we can use it everywhere that we need to read/store credentials in the
keychain.

There are still two credential provider implementations:

- `KeychainCredentialsProvider` will interact with the system keychain
(using the existing GPUI APIs)
- `DevelopmentCredentialsProvider` will use a local file on the file
system

We only use the `DevelopmentCredentialsProvider` when:

1. We are running a development build of Zed
2. The `ZED_DEVELOPMENT_AUTH` environment variable is set
- I am considering removing the need for this and making it the default,
but that will be explored in a follow-up PR.

Release Notes:

- N/A
2025-02-20 17:58:50 +00:00
..
contents Fix bundle script 2023-11-17 17:44:41 -08:00
resources Remove unnecessary icon field from snapcraft.yaml (#25200) 2025-02-19 15:47:46 -07:00
src Add CredentialsProvider to silence keychain prompts in development (#25266) 2025-02-20 17:58:50 +00:00
build.rs chore: Remove duplicate lines in crates/zed/build.rs (#22500) 2024-12-30 11:52:40 +00:00
Cargo.toml Add CredentialsProvider to silence keychain prompts in development (#25266) 2025-02-20 17:58:50 +00:00
LICENSE-GPL chore: Change AGPL-licensed crates to GPL (except for collab) (#4231) 2024-01-24 00:26:58 +01:00
RELEASE_CHANNEL Restore the default release channel (#23671) 2025-01-26 09:19:24 +00:00