docs/use_cases/edit_project_env_variables.md

Summary

Maintainability
Test Coverage
# Edit project-specific environment variables #

Since `fastlane.ci` should be usable by developers that don't want to use the terminal, we want to make it easy for them to set environment variables for a specific project. Some examples for why this is useful would be the `FASTLANE_USER` and `FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD` ENV variables.
    
### Steps ###
1. In the project settings, a user can click on `Edit environment variables`
1. Similar to how heroku.com allows an easy way to edit env variables in a secure way, the user can add, edit and remove ENV variables
1. There are some instructions on what ENV variables can be used for, with examples of the most common _fastlane_ related ones (currently listed in the fastlane docs https://docs.fastlane.tools/best-practices/continuous-integration/#environment-variables-to-set)
1. Optional: if there are any running builds, we could show a warning to the user, that all builds that have already started at this point, don't have the updated ENV variables yet, and builds that are currently in the queue will have the new ENV context

### Details ###


#### Security ####

All environment variables we manage for the user are treated as secrets. They should be stored fully encrypted, as part of the `ci-config` repo.

#### Distributed builds ####

Once `fastlane.ci` supports distributed builds (multiple Mac workers), this system will automatically distribute those environment variables in a secure way across all nodes.

#### Global ENV variables ####

As described in [edit_global_env_variables.md](./edit_global_env_variables.md), the user can set global ENV variables also. `fastlane.ci` will always prefer the project-specific ENV variables over the global ones. To `unset` a global ENV variable, it's enough to set it to an empty string for now, as it will be handled by _fastlane_. We could think about an explicit `unset` in the future.

### Error states ###

[WIP]