diff options
author | Robert Speicher <robert@gitlab.com> | 2016-10-04 08:51:24 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-10-05 16:47:56 +0200 |
commit | 351025ec948eb1d4153e4766a600926c8c53f497 (patch) | |
tree | f7f54b3d31ae90034c2ddfb96a1dc33a735ff0a5 | |
parent | 1803bc267d8cd0dd38d79597664b6eb7ee2a948b (diff) | |
download | gitlab-ce-351025ec948eb1d4153e4766a600926c8c53f497.tar.gz |
Merge branch 'fix/import-service-issues' into 'master'
Fix issues importing services via Import/Export
Prevents errors when initialising services that do not have any properties set yet - case that could happen when importing projects.
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/22891
See merge request !6667
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/models/service.rb | 1 | ||||
-rw-r--r-- | spec/models/service_spec.rb | 17 |
3 files changed, 19 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG index 680de0ad439..ac2322b432f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,7 @@ v 8.12.4 (unreleased) - Fix type mismatch bug when closing Jira issue. !6619 - Fix lint-doc error. !6623 - Skip wiki creation when GitHub project has wiki enabled. !6665 + - Fix issues importing services via Import/Export. !6667 - Restrict failed login attempts for users with 2FA enabled. !6668 - Fix failed project deletion when feature visibility set to private. !6688 - Prevent claiming associated model IDs via import. diff --git a/app/models/service.rb b/app/models/service.rb index 80de7175565..66c804f2b06 100644 --- a/app/models/service.rb +++ b/app/models/service.rb @@ -136,6 +136,7 @@ class Service < ActiveRecord::Base end def #{arg}=(value) + self.properties ||= {} updated_properties['#{arg}'] = #{arg} unless #{arg}_changed? self.properties['#{arg}'] = value end diff --git a/spec/models/service_spec.rb b/spec/models/service_spec.rb index 05056a4bb47..ed1bc9271ae 100644 --- a/spec/models/service_spec.rb +++ b/spec/models/service_spec.rb @@ -203,6 +203,23 @@ describe Service, models: true do end end + describe 'initialize service with no properties' do + let(:service) do + GitlabIssueTrackerService.create( + project: create(:project), + title: 'random title' + ) + end + + it 'does not raise error' do + expect { service }.not_to raise_error + end + + it 'creates the properties' do + expect(service.properties).to eq({ "title" => "random title" }) + end + end + describe "callbacks" do let(:project) { create(:project) } let!(:service) do |