From eeeea489fba033274dec2087798e2480d2139ab4 Mon Sep 17 00:00:00 2001 From: Zeger-Jan van de Weg Date: Tue, 12 Sep 2017 09:21:47 +0200 Subject: [PATCH] AutoDevOps banner hidden on explicit CI config Extends the helper method to no show the banner as soon as the project has a `.gitlab-ci.yml` file on the default branch. Fixes gitlab-org/gitlab-ce#37652 --- app/helpers/auto_devops_helper.rb | 4 +++- changelogs/unreleased/zj-auto-devops-banner.yml | 6 ++++++ spec/helpers/auto_devops_helper_spec.rb | 16 ++++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/zj-auto-devops-banner.yml diff --git a/app/helpers/auto_devops_helper.rb b/app/helpers/auto_devops_helper.rb index c132daed323..c455d18cff8 100644 --- a/app/helpers/auto_devops_helper.rb +++ b/app/helpers/auto_devops_helper.rb @@ -3,6 +3,8 @@ module AutoDevopsHelper 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? + project.has_auto_devops_implicitly_disabled? && + !project.repository.gitlab_ci_yml && + project.ci_services.active.none? end end diff --git a/changelogs/unreleased/zj-auto-devops-banner.yml b/changelogs/unreleased/zj-auto-devops-banner.yml new file mode 100644 index 00000000000..a2abed0b2ec --- /dev/null +++ b/changelogs/unreleased/zj-auto-devops-banner.yml @@ -0,0 +1,6 @@ +--- +title: Do not show the Auto DevOps banner when the project has a .gitlab-ci.yml on + master +merge_request: +author: +type: fixed diff --git a/spec/helpers/auto_devops_helper_spec.rb b/spec/helpers/auto_devops_helper_spec.rb index 80d58ff6bf7..881538bc1c6 100644 --- a/spec/helpers/auto_devops_helper_spec.rb +++ b/spec/helpers/auto_devops_helper_spec.rb @@ -65,5 +65,21 @@ describe AutoDevopsHelper do it { is_expected.to eq(false) } end + + context 'when master contains a .gitlab-ci.yml file' do + before do + allow(project.repository).to receive(:gitlab_ci_yml).and_return("script: [ 'test']") + end + + it { is_expected.to eq(false) } + end + + context 'when another service is enabled' do + before do + create(:service, project: project, category: :ci, active: true) + end + + it { is_expected.to eq(false) } + end end end