Merge branch 'zj-feature-flipper-disable-banner' into 'master'

Allow all AutoDevOps banners to be disabled

Closes #37653

See merge request !14218
This commit is contained in:
Kamil Trzciński 2017-09-13 09:00:50 +00:00
commit da4ca9f44c
4 changed files with 34 additions and 1 deletions

View File

@ -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

View File

@ -0,0 +1,5 @@
---
title: Allow all AutoDevOps banners to be turned off
merge_request:
author:
type: changed

View File

@ -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

View File

@ -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'