fix model order in import/export config and 1to1 relation issue. Added relevant specs.
This commit is contained in:
parent
7b42ff6306
commit
fc548207d5
5 changed files with 54 additions and 5 deletions
|
@ -11,6 +11,7 @@ v 8.12.2 (unreleased)
|
|||
- Fix snippets pagination
|
||||
- Fix List-Unsubscribe header in emails
|
||||
- Fix an issue with the "Commits" section of the cycle analytics summary. !6513
|
||||
- Fix errors importing project feature and milestone models using GitLab project import
|
||||
|
||||
v 8.12.1
|
||||
- Fix a memory leak in HTML::Pipeline::SanitizationFilter::WHITELIST
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
# Model relationships to be included in the project import/export
|
||||
project_tree:
|
||||
- :labels
|
||||
- milestones:
|
||||
- :events
|
||||
- issues:
|
||||
- :events
|
||||
- notes:
|
||||
|
@ -39,9 +42,6 @@ project_tree:
|
|||
- protected_branches:
|
||||
- :merge_access_levels
|
||||
- :push_access_levels
|
||||
- :labels
|
||||
- milestones:
|
||||
- :events
|
||||
- :project_feature
|
||||
|
||||
# Only include the following attributes for the models specified.
|
||||
|
|
|
@ -61,11 +61,17 @@ module Gitlab
|
|||
def restore_project
|
||||
return @project unless @tree_hash
|
||||
|
||||
project_params = @tree_hash.reject { |_key, value| value.is_a?(Array) }
|
||||
@project.update(project_params)
|
||||
@project
|
||||
end
|
||||
|
||||
def project_params
|
||||
@tree_hash.reject do |key, value|
|
||||
# return params that are not 1 to many or 1 to 1 relations
|
||||
value.is_a?(Array) || key == key.singularize
|
||||
end
|
||||
end
|
||||
|
||||
# Given a relation hash containing one or more models and its relationships,
|
||||
# loops through each model and each object from a model type and
|
||||
# and assigns its correspondent attributes hash from +tree_hash+
|
||||
|
|
|
@ -2231,6 +2231,31 @@
|
|||
|
||||
],
|
||||
"milestones": [
|
||||
{
|
||||
"id": 1,
|
||||
"title": "test milestone",
|
||||
"project_id": 8,
|
||||
"description": "test milestone",
|
||||
"due_date": null,
|
||||
"created_at": "2016-06-14T15:02:04.415Z",
|
||||
"updated_at": "2016-06-14T15:02:04.415Z",
|
||||
"state": "active",
|
||||
"iid": 1,
|
||||
"events": [
|
||||
{
|
||||
"id": 487,
|
||||
"target_type": "Milestone",
|
||||
"target_id": 1,
|
||||
"title": null,
|
||||
"data": null,
|
||||
"project_id": 46,
|
||||
"created_at": "2016-06-14T15:02:04.418Z",
|
||||
"updated_at": "2016-06-14T15:02:04.418Z",
|
||||
"action": 1,
|
||||
"author_id": 18
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"title": "v4.0",
|
||||
|
@ -7373,5 +7398,16 @@
|
|||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"project_feature": {
|
||||
"builds_access_level": 0,
|
||||
"created_at": "2014-12-26T09:26:45.000Z",
|
||||
"id": 2,
|
||||
"issues_access_level": 0,
|
||||
"merge_requests_access_level": 20,
|
||||
"project_id": 4,
|
||||
"snippets_access_level": 20,
|
||||
"updated_at": "2016-09-23T11:58:28.000Z",
|
||||
"wiki_access_level": 20
|
||||
}
|
||||
}
|
|
@ -107,6 +107,12 @@ describe Gitlab::ImportExport::ProjectTreeRestorer, services: true do
|
|||
expect(Label.first.label_links.first.target).not_to be_nil
|
||||
end
|
||||
|
||||
it 'has a project feature' do
|
||||
restored_project_json
|
||||
|
||||
expect(project.project_feature).not_to be_nil
|
||||
end
|
||||
|
||||
it 'restores the correct service' do
|
||||
restored_project_json
|
||||
|
||||
|
|
Loading…
Reference in a new issue