diff options
author | James Edwards-Jones <jedwardsjones@gitlab.com> | 2019-02-07 20:27:03 +0000 |
---|---|---|
committer | James Edwards-Jones <jedwardsjones@gitlab.com> | 2019-02-19 14:57:03 +0800 |
commit | 46f66c7f0aa5ddf2f8d996880936d88e6977f6c0 (patch) | |
tree | 92b9eea7e05202549d8fb47ac014930dc3a6acdd /lib | |
parent | 82423ac34ac90e3ff3443495a14af0105feff67d (diff) | |
download | gitlab-ce-46f66c7f0aa5ddf2f8d996880936d88e6977f6c0.tar.gz |
Allow setting feature flags per GitLab group
Building on support for setting feature flags by project, this adds
support for setting them by GitLab group path.
This is different from setting them by Flipper feature_groups, which
are for batch updating pre-registered collections.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/features.rb | 1 | ||||
-rw-r--r-- | lib/feature.rb | 10 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/api/features.rb b/lib/api/features.rb index 835aac05905..4dc1834c644 100644 --- a/lib/api/features.rb +++ b/lib/api/features.rb @@ -42,6 +42,7 @@ module API requires :value, type: String, desc: '`true` or `false` to enable/disable, an integer for percentage of time' optional :feature_group, type: String, desc: 'A Feature group name' optional :user, type: String, desc: 'A GitLab username' + optional :group, type: String, desc: "A GitLab group's path, such as 'gitlab-org'" optional :project, type: String, desc: 'A projects path, like gitlab-org/gitlab-ce' end post ':name' do diff --git a/lib/feature.rb b/lib/feature.rb index e59cd70f822..749c861d740 100644 --- a/lib/feature.rb +++ b/lib/feature.rb @@ -111,11 +111,11 @@ class Feature end def gate_specified? - %i(user project feature_group).any? { |key| params.key?(key) } + %i(user project group feature_group).any? { |key| params.key?(key) } end def targets - [feature_group, user, project].compact + [feature_group, user, project, group].compact end private @@ -139,5 +139,11 @@ class Feature Project.find_by_full_path(params[:project]) end + + def group + return unless params.key?(:group) + + Group.find_by_full_path(params[:group]) + end end end |