diff options
author | James Lopez <james@jameslopez.es> | 2016-06-29 10:35:26 +0200 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2016-06-29 10:35:26 +0200 |
commit | 3d2a73667983aefda9464d8651d5d59d617a4b95 (patch) | |
tree | 83c5e83dbb2d0acbea4730845b4edb92d2afd975 | |
parent | 9e8fdead1789b425152256ec977241e7f19123ce (diff) | |
download | gitlab-ce-3d2a73667983aefda9464d8651d5d59d617a4b95.tar.gz |
fixing events for import/export
-rw-r--r-- | app/models/concerns/eventable.rb | 15 | ||||
-rw-r--r-- | app/models/issue.rb | 1 | ||||
-rw-r--r-- | app/models/merge_request.rb | 1 | ||||
-rw-r--r-- | app/models/milestone.rb | 1 | ||||
-rw-r--r-- | app/models/note.rb | 1 | ||||
-rw-r--r-- | lib/gitlab/import_export/import_export.yml | 15 | ||||
-rw-r--r-- | spec/lib/gitlab/import_export/project_tree_saver_spec.rb | 7 |
7 files changed, 34 insertions, 7 deletions
diff --git a/app/models/concerns/eventable.rb b/app/models/concerns/eventable.rb new file mode 100644 index 00000000000..fa6a4bfa8da --- /dev/null +++ b/app/models/concerns/eventable.rb @@ -0,0 +1,15 @@ +module Eventable + extend ActiveSupport::Concern + + def events + Event.where(target_id: id, target_type: self.class.to_s) + end + + def events=(events) + events.each do |event| + event.target_id = id + event.data.deep_symbolize_keys! + event.save! + end + end +end
\ No newline at end of file diff --git a/app/models/issue.rb b/app/models/issue.rb index 3c5859194b4..ae177c041e7 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -6,6 +6,7 @@ class Issue < ActiveRecord::Base include Referable include Sortable include Taskable + include Eventable DueDateStruct = Struct.new(:title, :name).freeze NoDueDate = DueDateStruct.new('No Due Date', '0').freeze diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 53d9aa588af..326a0430eb4 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -5,6 +5,7 @@ class MergeRequest < ActiveRecord::Base include Sortable include Taskable include Importable + include Eventable belongs_to :target_project, foreign_key: :target_project_id, class_name: "Project" belongs_to :source_project, foreign_key: :source_project_id, class_name: "Project" diff --git a/app/models/milestone.rb b/app/models/milestone.rb index e0c8454a998..2283376c8ac 100644 --- a/app/models/milestone.rb +++ b/app/models/milestone.rb @@ -11,6 +11,7 @@ class Milestone < ActiveRecord::Base include Referable include StripAttribute include Milestoneish + include Eventable belongs_to :project has_many :issues diff --git a/app/models/note.rb b/app/models/note.rb index 8db500a5219..ed26fb2d88a 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -5,6 +5,7 @@ class Note < ActiveRecord::Base include Mentionable include Awardable include Importable + include Eventable # Attribute containing rendered and redacted Markdown as generated by # Banzai::ObjectRenderer. diff --git a/lib/gitlab/import_export/import_export.yml b/lib/gitlab/import_export/import_export.yml index 164ab6238c4..05f4ad527ac 100644 --- a/lib/gitlab/import_export/import_export.yml +++ b/lib/gitlab/import_export/import_export.yml @@ -1,24 +1,29 @@ # Model relationships to be included in the project import/export project_tree: - issues: + - :events - notes: - :author + - :author + - :events - :labels - - :milestones + - milestones: + - :events - snippets: - notes: :author - :releases - - :events - project_members: - :user - merge_requests: - notes: - :author + - :author + - :events - :merge_request_diff + - :events - pipelines: - notes: - :author + - :author + - :events - :statuses - :variables - :triggers diff --git a/spec/lib/gitlab/import_export/project_tree_saver_spec.rb b/spec/lib/gitlab/import_export/project_tree_saver_spec.rb index 8d29b2f8fd1..3b98045a2fc 100644 --- a/spec/lib/gitlab/import_export/project_tree_saver_spec.rb +++ b/spec/lib/gitlab/import_export/project_tree_saver_spec.rb @@ -34,7 +34,7 @@ describe Gitlab::ImportExport::ProjectTreeSaver, services: true do end it 'has events' do - expect(saved_project_json['events']).not_to be_empty + expect(saved_project_json['milestones'].first['events']).not_to be_empty end it 'has milestones' do @@ -132,7 +132,7 @@ describe Gitlab::ImportExport::ProjectTreeSaver, services: true do statuses: [commit_status]) create(:ci_build, pipeline: ci_pipeline, project: project) - create(:milestone, project: project) + milestone = create(:milestone, project: project) create(:note, noteable: issue, project: project) create(:note, noteable: merge_request, project: project) create(:note, noteable: snippet, project: project) @@ -140,6 +140,9 @@ describe Gitlab::ImportExport::ProjectTreeSaver, services: true do author: user, project: project, commit_id: ci_pipeline.sha) + + create(:event, target: milestone, project: project, action: Event::CREATED, author: user) + project end |