Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
acd36957
Commit
acd36957
authored
Nov 01, 2016
by
Robert Speicher
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "Fixed Import/Export foreign key issue to do with project members"
This reverts commit
a23ca284
.
parent
a23ca284
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
4 additions
and
75 deletions
+4
-75
lib/gitlab/import_export/attribute_cleaner.rb
lib/gitlab/import_export/attribute_cleaner.rb
+0
-28
lib/gitlab/import_export/members_mapper.rb
lib/gitlab/import_export/members_mapper.rb
+1
-6
lib/gitlab/import_export/relation_factory.rb
lib/gitlab/import_export/relation_factory.rb
+3
-4
spec/lib/gitlab/import_export/attribute_cleaner_spec.rb
spec/lib/gitlab/import_export/attribute_cleaner_spec.rb
+0
-37
No files found.
lib/gitlab/import_export/attribute_cleaner.rb
deleted
100644 → 0
View file @
a23ca284
module
Gitlab
module
ImportExport
class
AttributeCleaner
ALLOWED_REFERENCES
=
RelationFactory
::
PROJECT_REFERENCES
+
RelationFactory
::
USER_REFERENCES
+
[
'group_id'
]
def
self
.
clean
(
*
args
)
new
(
*
args
).
clean
end
def
initialize
(
relation_hash
:,
relation_class
:)
@relation_hash
=
relation_hash
@relation_class
=
relation_class
end
def
clean
@relation_hash
.
reject
do
|
key
,
_value
|
prohibited_key?
(
key
)
||
!
@relation_class
.
attribute_method?
(
key
)
end
.
except
(
'id'
)
end
private
def
prohibited_key?
(
key
)
key
.
end_with?
(
'_id'
)
&&
!
ALLOWED_REFERENCES
.
include?
(
key
)
end
end
end
end
lib/gitlab/import_export/members_mapper.rb
View file @
acd36957
...
@@ -52,12 +52,7 @@ module Gitlab
...
@@ -52,12 +52,7 @@ module Gitlab
end
end
def
member_hash
(
member
)
def
member_hash
(
member
)
parsed_hash
(
member
).
merge
(
'source_id'
=>
@project
.
id
,
'importing'
=>
true
)
member
.
except
(
'id'
).
merge
(
source_id:
@project
.
id
,
importing:
true
)
end
def
parsed_hash
(
member
)
Gitlab
::
ImportExport
::
AttributeCleaner
.
clean
(
relation_hash:
member
.
deep_stringify_keys
,
relation_class:
ProjectMember
)
end
end
def
find_project_user_query
(
member
)
def
find_project_user_query
(
member
)
...
...
lib/gitlab/import_export/relation_factory.rb
View file @
acd36957
...
@@ -9,7 +9,7 @@ module Gitlab
...
@@ -9,7 +9,7 @@ module Gitlab
builds:
'Ci::Build'
,
builds:
'Ci::Build'
,
hooks:
'ProjectHook'
}.
freeze
hooks:
'ProjectHook'
}.
freeze
USER_REFERENCES
=
%w[author_id assignee_id updated_by_id user_id
created_by_id
]
.
freeze
USER_REFERENCES
=
%w[author_id assignee_id updated_by_id user_id]
.
freeze
BUILD_MODELS
=
%w[Ci::Build commit_status]
.
freeze
BUILD_MODELS
=
%w[Ci::Build commit_status]
.
freeze
...
@@ -23,7 +23,7 @@ module Gitlab
...
@@ -23,7 +23,7 @@ module Gitlab
def
initialize
(
relation_sym
:,
relation_hash
:,
members_mapper
:,
user
:)
def
initialize
(
relation_sym
:,
relation_hash
:,
members_mapper
:,
user
:)
@relation_name
=
OVERRIDES
[
relation_sym
]
||
relation_sym
@relation_name
=
OVERRIDES
[
relation_sym
]
||
relation_sym
@relation_hash
=
relation_hash
.
except
(
'
noteable_id'
).
merge
(
'project_id'
=>
project_id
)
@relation_hash
=
relation_hash
.
except
(
'
id'
,
'noteable_id'
)
@members_mapper
=
members_mapper
@members_mapper
=
members_mapper
@user
=
user
@user
=
user
@imported_object_retries
=
0
@imported_object_retries
=
0
...
@@ -147,8 +147,7 @@ module Gitlab
...
@@ -147,8 +147,7 @@ module Gitlab
end
end
def
parsed_relation_hash
def
parsed_relation_hash
@parsed_relation_hash
||=
Gitlab
::
ImportExport
::
AttributeCleaner
.
clean
(
relation_hash:
@relation_hash
,
@relation_hash
.
reject
{
|
k
,
_v
|
!
relation_class
.
attribute_method?
(
k
)
}
relation_class:
relation_class
)
end
end
def
set_st_diffs
def
set_st_diffs
...
...
spec/lib/gitlab/import_export/attribute_cleaner_spec.rb
deleted
100644 → 0
View file @
a23ca284
require
'spec_helper'
describe
Gitlab
::
ImportExport
::
AttributeCleaner
,
lib:
true
do
let
(
:relation_class
){
double
(
'relation_class'
).
as_null_object
}
let
(
:unsafe_hash
)
do
{
'id'
=>
101
,
'service_id'
=>
99
,
'moved_to_id'
=>
99
,
'namespace_id'
=>
99
,
'ci_id'
=>
99
,
'random_project_id'
=>
99
,
'random_id'
=>
99
,
'milestone_id'
=>
99
,
'project_id'
=>
99
,
'user_id'
=>
99
,
'random_id_in_the_middle'
=>
99
,
'notid'
=>
99
}
end
let
(
:post_safe_hash
)
do
{
'project_id'
=>
99
,
'user_id'
=>
99
,
'random_id_in_the_middle'
=>
99
,
'notid'
=>
99
}
end
it
'removes unwanted attributes from the hash'
do
# allow(relation_class).to receive(:attribute_method?).and_return(true)
parsed_hash
=
described_class
.
clean
(
relation_hash:
unsafe_hash
,
relation_class:
relation_class
)
expect
(
parsed_hash
).
to
eq
(
post_safe_hash
)
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment