diff options
author | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2017-09-12 15:00:50 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2017-09-12 15:22:56 +0300 |
commit | b1d5186d0a2d8ea2b594398fbcfe28acb3e8ed23 (patch) | |
tree | 5bc558fcdf7564cbaa584ddabf70cd169c66e033 | |
parent | 7e992b0be12da8906da04dd4c11c4ae2b01299bc (diff) |
Allow all AutoDevOps banners to be disabled
Given the default in the development and production environment is
false, the negation of enabling is used in the flag to signal you'd turn
it off. It reads a bit awkward, but makes us have a migration less.
Fixes gitlab-org/gitlab-ce#37653
-rw-r--r-- | app/helpers/auto_devops_helper.rb | 3 | ||||
-rw-r--r-- | changelogs/unreleased/zj-feature-flipper-disable-banner.yml | 5 | ||||
-rw-r--r-- | doc/topics/autodevops/index.md | 17 | ||||
-rw-r--r-- | spec/helpers/auto_devops_helper_spec.rb | 10 |
4 files changed, 34 insertions, 1 deletions
diff --git a/app/helpers/auto_devops_helper.rb b/app/helpers/auto_devops_helper.rb index 4ff38f86b5f..c132daed323 100644 --- a/app/helpers/auto_devops_helper.rb +++ b/app/helpers/auto_devops_helper.rb @@ -1,6 +1,7 @@ module AutoDevopsHelper def show_auto_devops_callout?(project) - show_callout?('auto_devops_settings_dismissed') && + Feature.get(:auto_devops_banner_disabled).off? && + show_callout?('auto_devops_settings_dismissed') && can?(current_user, :admin_pipeline, project) && project.has_auto_devops_implicitly_disabled? end diff --git a/changelogs/unreleased/zj-feature-flipper-disable-banner.yml b/changelogs/unreleased/zj-feature-flipper-disable-banner.yml new file mode 100644 index 00000000000..fd5dd1bbe37 --- /dev/null +++ b/changelogs/unreleased/zj-feature-flipper-disable-banner.yml @@ -0,0 +1,5 @@ +--- +title: Allow all AutoDevOps banners to be turned off +merge_request: +author: +type: changed diff --git a/doc/topics/autodevops/index.md b/doc/topics/autodevops/index.md index babf44d2665..b31b8eaaca0 100644 --- a/doc/topics/autodevops/index.md +++ b/doc/topics/autodevops/index.md @@ -323,6 +323,23 @@ container registry. **Restarting a pod, scaling a service, or other actions whic require on-going access to the registry will fail**. On-going secure access is planned for a subsequent release. +## Disable the banner instance wide + +If an administrater would like to disable the banners on an instance level, this +feature can be disabled either through the console: + +```basb +$ gitlab-rails console +[1] pry(main)> Feature.get(:auto_devops_banner_disabled).disable +=> true +``` + +Or through the HTTP API with the admin access token: + +``` +curl --data "value=true" --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/features/auto_devops_banner_disabled +``` + ## Troubleshooting - Auto Build and Auto Test may fail in detecting your language/framework. There diff --git a/spec/helpers/auto_devops_helper_spec.rb b/spec/helpers/auto_devops_helper_spec.rb index b6d892548ef..80d58ff6bf7 100644 --- a/spec/helpers/auto_devops_helper_spec.rb +++ b/spec/helpers/auto_devops_helper_spec.rb @@ -10,6 +10,8 @@ describe AutoDevopsHelper do before do allow(helper).to receive(:can?).with(user, :admin_pipeline, project) { allowed } allow(helper).to receive(:current_user) { user } + + Feature.get(:auto_devops_banner_disabled).disable end subject { helper.show_auto_devops_callout?(project) } @@ -18,6 +20,14 @@ describe AutoDevopsHelper do it { is_expected.to eq(true) } end + context 'when the banner is disabled by feature flag' do + it 'allows the feature flag to disable' do + Feature.get(:auto_devops_banner_disabled).enable + + expect(subject).to be(false) + end + end + context 'when dismissed' do before do helper.request.cookies[:auto_devops_settings_dismissed] = 'true' |