summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2018-06-05 12:06:25 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2018-06-05 12:06:25 +0000
commit636d70381e3f5b2fe983127ece216e9bb6a07bb1 (patch)
treed3509ec87186f412a3490582241d6123384e3ec9
parent9ca8d88b07406a51501999c1ea37dfdb0f697c06 (diff)
parent291dc5a21cbf171c14df230dcf056bee6d8bc6f8 (diff)
downloadgitlab-ce-636d70381e3f5b2fe983127ece216e9bb6a07bb1.tar.gz
Merge branch '46452-nomethoderror-undefined-method-previous_changes-for-nil-nilclass' into 'master'
Resolve "NoMethodError: undefined method `previous_changes' for nil:NilClass" Closes #46452 See merge request gitlab-org/gitlab-ce!19190
-rw-r--r--app/services/projects/update_service.rb2
-rw-r--r--changelogs/unreleased/46452-nomethoderror-undefined-method-previous_changes-for-nil-nilclass.yml5
-rw-r--r--spec/services/projects/update_service_spec.rb4
3 files changed, 10 insertions, 1 deletions
diff --git a/app/services/projects/update_service.rb b/app/services/projects/update_service.rb
index 0e489ec5e86..0d1e2e758cd 100644
--- a/app/services/projects/update_service.rb
+++ b/app/services/projects/update_service.rb
@@ -38,7 +38,7 @@ module Projects
end
def run_auto_devops_pipeline?
- return false if project.repository.gitlab_ci_yml || !project.auto_devops.previous_changes.include?('enabled')
+ return false if project.repository.gitlab_ci_yml || !project.auto_devops&.previous_changes&.include?('enabled')
project.auto_devops.enabled? || (project.auto_devops.enabled.nil? && Gitlab::CurrentSettings.auto_devops_enabled?)
end
diff --git a/changelogs/unreleased/46452-nomethoderror-undefined-method-previous_changes-for-nil-nilclass.yml b/changelogs/unreleased/46452-nomethoderror-undefined-method-previous_changes-for-nil-nilclass.yml
new file mode 100644
index 00000000000..89dee65f5a8
--- /dev/null
+++ b/changelogs/unreleased/46452-nomethoderror-undefined-method-previous_changes-for-nil-nilclass.yml
@@ -0,0 +1,5 @@
+---
+title: Check for nil AutoDevOps when saving project CI/CD settings.
+merge_request: 19190
+author:
+type: fixed
diff --git a/spec/services/projects/update_service_spec.rb b/spec/services/projects/update_service_spec.rb
index 3e6073b9861..1f761bcbbad 100644
--- a/spec/services/projects/update_service_spec.rb
+++ b/spec/services/projects/update_service_spec.rb
@@ -275,6 +275,10 @@ describe Projects::UpdateService do
it { is_expected.to eq(false) }
end
+ context 'when auto devops is nil' do
+ it { is_expected.to eq(false) }
+ end
+
context 'when auto devops is explicitly enabled' do
before do
project.create_auto_devops!(enabled: true)