Support multiple arguments/environments in the chatops commands for feature flags

Problem

Currently, the chatops commands for feature flags don't support multiple arguments/environments. This sometimes result in an awkward situation that the #production channel becomes very noisy by the commands and responses. Also, it takes long time to finish one command and another.

Example of feature flag issues.

Proposal

Introduce --preprod environment alias for preproduction rollout

Before

/chatops run feature set <flag-name> true --dev
/chatops run feature set <flag-name> true --staging

After

/chatops run feature set <flag-name> true --preprod

Support multiple actor arguments for specific rollout

Before

/chatops run feature set --project=gitlab-org/gitlab <flag-name> true
/chatops run feature set --project=gitlab-org/gitlab-foss <flag-name> true
/chatops run feature set --project=gitlab-com/www-gitlab-com <flag-name> true

After

/chatops run feature set --project="gitlab-org/gitlab,gitlab-org/gitlab-foss,gitlab-com/www-gitlab-com" <flag-name> true

or

/chatops run feature set --project=gitlab-org/gitlab --project=gitlab-org/gitlab-foss --project=gitlab-com/www-gitlab-com <flag-name> true

Support multiple environments in cleanup

Before

/chatops run feature delete <flag-name> --dev
/chatops run feature delete <flag-name> --staging
/chatops run feature delete <flag-name>

After

/chatops run feature cleanup <flag-name>

or

/chatops run feature delete <flag-name> --all-envs
Edited by Shinya Maeda
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information