# Add development credentials provider \(\#11505\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/d64106e01b0ebec37d00ff0fd28f6848e16a997b)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: d64106e01b0ebec37d00ff0fd28f6848e16a997b

Requested commit: d64106e01b0ebec37d00ff0fd28f6848e16a997b

Commit: d64106e01b0ebec37d00ff0fd28f6848e16a997b

Tree: 43de4505e59b3b54a7c29ac2322e58886484aef5

Author: Marshall Bowers

Committer: GitHub

## Message

```
Add development credentials provider (#11505)

This PR adds a new development credentials provider for the purpose of
streamlining local development against production collab.

## Problem

Today if you want to run a development build of Zed against the
production collab server, you need to either:

1. Enter your keychain password every time in order to retrieve your
saved credentials
2. Re-authenticate with zed.dev every time
    - This can get annoying as you need to pop out into a browser window
- I've also seen cases where if you re-auth too many times in a row
GitHub will make you confirm the authentication, as it looks suspicious

## Solution

This PR decouples the concept of the credentials provider from the
keychain, and adds a new development credentials provider to address
this specific case.

Now when running a development build of Zed and the
`ZED_DEVELOPMENT_AUTH` environment variable is set to a non-empty value,
the credentials will be saved to disk instead of the system keychain.

While this is not as secure as storing them in the system keychain,
since it is only used for development the tradeoff seems acceptable for
the resulting improvement in UX.

Release Notes:

- N/A
```

## Parents

- [c260f7d5acf6bd3605fc22a244510b0363075b20](https://git.cafe/gitcafe/zed/commit/c260f7d5acf6bd3605fc22a244510b0363075b20?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/d64106e01b0ebec37d00ff0fd28f6848e16a997b?format=markdown)
