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
0d8a97dc
Commit
0d8a97dc
authored
Apr 12, 2016
by
James Lopez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
some more fixes to import projects
parent
c94c0dc0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
445 additions
and
5 deletions
+445
-5
app/services/projects/import_export/project_tree_restorer.rb
app/services/projects/import_export/project_tree_restorer.rb
+11
-2
app/services/projects/import_export/relation_factory.rb
app/services/projects/import_export/relation_factory.rb
+2
-2
fixtures/import_export/project.json
fixtures/import_export/project.json
+432
-1
No files found.
app/services/projects/import_export/project_tree_restorer.rb
View file @
0d8a97dc
...
...
@@ -58,12 +58,21 @@ module Projects
relation
.
values
.
flatten
.
each
do
|
sub_relation
|
relation_hash
=
relation_item
[
sub_relation
.
to_s
]
next
if
relation_hash
.
blank?
sub_relation_object
=
relation_from_factory
(
sub_relation
,
relation_hash
)
relation_item
[
sub_relation
.
to_s
]
=
sub_relation_object
process_sub_relation
(
relation_hash
,
relation_item
,
sub_relation
)
end
end
end
def
process_sub_relation
(
relation_hash
,
relation_item
,
sub_relation
)
sub_relation_object
=
nil
if
relation_hash
.
is_a?
(
Array
)
sub_relation_object
=
create_relation
(
sub_relation
,
relation_hash
)
else
sub_relation_object
=
relation_from_factory
(
sub_relation
,
relation_hash
)
end
relation_item
[
sub_relation
.
to_s
]
=
sub_relation_object
end
def
create_relation
(
relation
,
relation_hash_list
)
[
relation_hash_list
].
flatten
.
map
do
|
relation_hash
|
relation_from_factory
(
relation
,
relation_hash
)
...
...
app/services/projects/import_export/relation_factory.rb
View file @
0d8a97dc
...
...
@@ -48,8 +48,8 @@ module Projects
def
parse_relation
(
relation_hash
,
relation_sym
)
klass
=
relation_class
(
relation_sym
)
relation_hash
.
delete
(
'id'
)
#screw IDs for now
relation_hash
.
delete
(
'project_id'
)
unless
klass
.
column_names
.
include?
(
:project_id
)
relation_hash
.
delete
(
'id'
)
relation_hash
.
delete
(
'project_id'
)
unless
klass
.
column_names
.
include?
(
'project_id'
)
klass
end
end
...
...
fixtures/import_export/project.json
View file @
0d8a97dc
{
"name"
:
"searchable_project"
,
"path"
:
"gitlabhq"
,
"description"
:
null
,
"issues_enabled"
:
true
,
"wall_enabled"
:
false
,
"merge_requests_enabled"
:
true
,
"wiki_enabled"
:
true
,
"snippets_enabled"
:
true
,
"visibility_level"
:
20
,
"archived"
:
false
,
"issues"
:[{
"id"
:
2
,
"title"
:
"Libero explicabo dolores atque quae debitis sit ipsam unde."
,
"assignee_id"
:
19
,
"author_id"
:
20
,
"project_id"
:
14
,
"created_at"
:
"2016-03-14T11:56:57.324Z"
,
"updated_at"
:
"2016-03-14T11:57:02.118Z"
,
"position"
:
0
,
"branch_name"
:
null
,
"description"
:
null
,
"milestone_id"
:
null
,
"state"
:
"opened"
,
"iid"
:
1
,
"updated_by_id"
:
null
}],
"labels"
:[{
"id"
:
2
,
"title"
:
"Bug"
,
"color"
:
"#990000"
,
"project_id"
:
14
,
"created_at"
:
"2016-03-14T11:56:59.538Z"
,
"updated_at"
:
"2016-03-14T11:57:02.132Z"
,
"template"
:
false
,
"description"
:
null
}],
"milestones"
:[{
"id"
:
2
,
"title"
:
"Milestone v1.2"
,
"project_id"
:
14
,
"description"
:
null
,
"due_date"
:
null
,
"created_at"
:
"2016-03-14T11:57:02.241Z"
,
"updated_at"
:
"2016-03-14T11:57:02.241Z"
,
"state"
:
"active"
,
"iid"
:
1
}],
"releases"
:[{
"id"
:
2
,
"tag"
:
"v1.1.0"
,
"description"
:
"Awesome release"
,
"project_id"
:
14
,
"created_at"
:
"2016-03-14T11:57:00.950Z"
,
"updated_at"
:
"2016-03-14T11:57:02.159Z"
}],
"events"
:[{
"id"
:
2
,
"target_type"
:
null
,
"target_id"
:
null
,
"title"
:
null
,
"data"
:
null
,
"project_id"
:
14
,
"created_at"
:
"2016-03-14T11:57:02.392Z"
,
"updated_at"
:
"2016-03-14T11:57:02.392Z"
,
"action"
:
8
,
"author_id"
:
19
}],
"snippets"
:[{
"id"
:
2
,
"title"
:
"Et qui optio blanditiis non."
,
"content"
:
"Repudiandae hic id vero adipisci."
,
"author_id"
:
28
,
"project_id"
:
14
,
"created_at"
:
"2016-03-14T11:57:00.372Z"
,
"updated_at"
:
"2016-03-14T11:57:02.144Z"
,
"file_name"
:
"krystina"
,
"visibility_level"
:
0
}],
"project_members"
:[{
"id"
:
2
,
"access_level"
:
40
,
"source_id"
:
14
,
"source_type"
:
"Project"
,
"user_id"
:
19
,
"notification_level"
:
3
,
"created_at"
:
"2016-03-14T11:57:02.335Z"
,
"updated_at"
:
"2016-03-14T11:57:02.335Z"
,
"created_by_id"
:
null
,
"invite_email"
:
null
,
"invite_token"
:
null
,
"invite_accepted_at"
:
null
,
"user"
:{
"id"
:
19
,
"email"
:
"braxton@greenholttromp.ca"
,
"username"
:
"elena19"
}}],
"merge_requests"
:[{
"id"
:
2
,
"target_branch"
:
"feature"
,
"source_branch"
:
"master"
,
"source_project_id"
:
9
,
"author_id"
:
23
,
"assignee_id"
:
null
,
"title"
:
"Cum est in est et."
,
"created_at"
:
"2016-03-14T11:56:58.333Z"
,
"updated_at"
:
"2016-03-14T11:56:58.333Z"
,
"milestone_id"
:
null
,
"state"
:
"opened"
,
"merge_status"
:
"can_be_merged"
,
"target_project_id"
:
14
,
"iid"
:
1
,
"description"
:
null
,
"position"
:
0
,
"locked_at"
:
null
,
"updated_by_id"
:
null
,
"merge_error"
:
null
,
"merge_params"
:{},
"merge_when_build_succeeds"
:
false
,
"merge_user_id"
:
null
,
"merge_commit_sha"
:
null
,
"merge_request_diff"
:{
"id"
:
2
,
"state"
:
"collected"
,
"st_commits"
:[{
"id"
:
"5937ac0a7beb003549fc5fd26fc247adbce4a52e"
,
"message"
:
"Add submodule from gitlab.com
\n\n
Signed-off-by: Dmitriy Zaporozhets
\u
003cdmitriy.zaporozhets@gmail.com
\u
003e
\n
"
,
"parent_ids"
:[
"570e7b2abdd848b95f2f578043fc23bd6f6fd24d"
],
"authored_date"
:
"2014-02-27T10:01:38.000+01:00"
,
"author_name"
:
"Dmitriy Zaporozhets"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"committed_date"
:
"2014-02-27T10:01:38.000+01:00"
,
"committer_name"
:
"Dmitriy Zaporozhets"
,
"committer_email"
:
"dmitriy.zaporozhets@gmail.com"
},{
"id"
:
"570e7b2abdd848b95f2f578043fc23bd6f6fd24d"
,
"message"
:
"Change some files
\n\n
Signed-off-by: Dmitriy Zaporozhets
\u
003cdmitriy.zaporozhets@gmail.com
\u
003e
\n
"
,
"parent_ids"
:[
"6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"
],
"authored_date"
:
"2014-02-27T09:57:31.000+01:00"
,
"author_name"
:
"Dmitriy Zaporozhets"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"committed_date"
:
"2014-02-27T09:57:31.000+01:00"
,
"committer_name"
:
"Dmitriy Zaporozhets"
,
"committer_email"
:
"dmitriy.zaporozhets@gmail.com"
},{
"id"
:
"6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"
,
"message"
:
"More submodules
\n\n
Signed-off-by: Dmitriy Zaporozhets
\u
003cdmitriy.zaporozhets@gmail.com
\u
003e
\n
"
,
"parent_ids"
:[
"d14d6c0abdd253381df51a723d58691b2ee1ab08"
],
"authored_date"
:
"2014-02-27T09:54:21.000+01:00"
,
"author_name"
:
"Dmitriy Zaporozhets"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"committed_date"
:
"2014-02-27T09:54:21.000+01:00"
,
"committer_name"
:
"Dmitriy Zaporozhets"
,
"committer_email"
:
"dmitriy.zaporozhets@gmail.com"
},{
"id"
:
"d14d6c0abdd253381df51a723d58691b2ee1ab08"
,
"message"
:
"Remove ds_store files
\n\n
Signed-off-by: Dmitriy Zaporozhets
\u
003cdmitriy.zaporozhets@gmail.com
\u
003e
\n
"
,
"parent_ids"
:[
"c1acaa58bbcbc3eafe538cb8274ba387047b69f8"
],
"authored_date"
:
"2014-02-27T09:49:50.000+01:00"
,
"author_name"
:
"Dmitriy Zaporozhets"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"committed_date"
:
"2014-02-27T09:49:50.000+01:00"
,
"committer_name"
:
"Dmitriy Zaporozhets"
,
"committer_email"
:
"dmitriy.zaporozhets@gmail.com"
},{
"id"
:
"c1acaa58bbcbc3eafe538cb8274ba387047b69f8"
,
"message"
:
"Ignore DS files
\n\n
Signed-off-by: Dmitriy Zaporozhets
\u
003cdmitriy.zaporozhets@gmail.com
\u
003e
\n
"
,
"parent_ids"
:[
"ae73cb07c9eeaf35924a10f713b364d32b2dd34f"
],
"authored_date"
:
"2014-02-27T09:48:32.000+01:00"
,
"author_name"
:
"Dmitriy Zaporozhets"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"committed_date"
:
"2014-02-27T09:48:32.000+01:00"
,
"committer_name"
:
"Dmitriy Zaporozhets"
,
"committer_email"
:
"dmitriy.zaporozhets@gmail.com"
}],
"st_diffs"
:[{
"diff"
:
"Binary files a/.DS_Store and /dev/null differ
\n
"
,
"new_path"
:
".DS_Store"
,
"old_path"
:
".DS_Store"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"0"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
true
},{
"diff"
:
"--- a/.gitignore
\n
+++ b/.gitignore
\n
@@ -17,3 +17,4 @@ rerun.txt
\n
pickle-email-*.html
\n
.project
\n
config/initializers/secret_token.rb
\n
+.DS_Store
\n
"
,
"new_path"
:
".gitignore"
,
"old_path"
:
".gitignore"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"100644"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
false
},{
"diff"
:
"--- a/.gitmodules
\n
+++ b/.gitmodules
\n
@@ -1,3 +1,9 @@
\n
[submodule
\"
six
\"
]
\n
\t
path = six
\n
\t
url = git://github.com/randx/six.git
\n
+[submodule
\"
gitlab-shell
\"
]
\n
+
\t
path = gitlab-shell
\n
+
\t
url = https://github.com/gitlabhq/gitlab-shell.git
\n
+[submodule
\"
gitlab-grack
\"
]
\n
+
\t
path = gitlab-grack
\n
+
\t
url = https://gitlab.com/gitlab-org/gitlab-grack.git
\n
"
,
"new_path"
:
".gitmodules"
,
"old_path"
:
".gitmodules"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"100644"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
false
},{
"diff"
:
"Binary files a/files/.DS_Store and /dev/null differ
\n
"
,
"new_path"
:
"files/.DS_Store"
,
"old_path"
:
"files/.DS_Store"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"0"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
true
},{
"diff"
:
"--- a/files/ruby/popen.rb
\n
+++ b/files/ruby/popen.rb
\n
@@ -6,12 +6,18 @@ module Popen
\n
\n
def popen(cmd, path=nil)
\n
unless cmd.is_a?(Array)
\n
- raise
\"
System commands must be given as an array of strings
\"\n
+ raise RuntimeError,
\"
System commands must be given as an array of strings
\"\n
end
\n
\n
path ||= Dir.pwd
\n
- vars = {
\"
PWD
\"
=
\u
003e path }
\n
- options = { chdir: path }
\n
+
\n
+ vars = {
\n
+
\"
PWD
\"
=
\u
003e path
\n
+ }
\n
+
\n
+ options = {
\n
+ chdir: path
\n
+ }
\n
\n
unless File.directory?(path)
\n
FileUtils.mkdir_p(path)
\n
@@ -19,6 +25,7 @@ module Popen
\n
\n
@cmd_output =
\"\"\n
@cmd_status = 0
\n
+
\n
Open3.popen3(vars, *cmd, options) do |stdin, stdout, stderr, wait_thr|
\n
@cmd_output
\u
003c
\u
003c stdout.read
\n
@cmd_output
\u
003c
\u
003c stderr.read
\n
"
,
"new_path"
:
"files/ruby/popen.rb"
,
"old_path"
:
"files/ruby/popen.rb"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"100644"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
false
},{
"diff"
:
"--- a/files/ruby/regex.rb
\n
+++ b/files/ruby/regex.rb
\n
@@ -19,14 +19,12 @@ module Gitlab
\n
end
\n
\n
def archive_formats_regex
\n
- #|zip|tar| tar.gz | tar.bz2 |
\n
- /(zip|tar|tar
\\
.gz|tgz|gz|tar
\\
.bz2|tbz|tbz2|tb2|bz2)/
\n
+ /(zip|tar|7z|tar
\\
.gz|tgz|gz|tar
\\
.bz2|tbz|tbz2|tb2|bz2)/
\n
end
\n
\n
def git_reference_regex
\n
# Valid git ref regex, see:
\n
# https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html
\n
-
\n
%r{
\n
(?!
\n
(?# doesn't begins with)
\n
"
,
"new_path"
:
"files/ruby/regex.rb"
,
"old_path"
:
"files/ruby/regex.rb"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"100644"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
false
},{
"diff"
:
"--- /dev/null
\n
+++ b/gitlab-grack
\n
@@ -0,0 +1 @@
\n
+Subproject commit 645f6c4c82fd3f5e06f67134450a570b795e55a6
\n
"
,
"new_path"
:
"gitlab-grack"
,
"old_path"
:
"gitlab-grack"
,
"a_mode"
:
"0"
,
"b_mode"
:
"160000"
,
"new_file"
:
true
,
"renamed_file"
:
false
,
"deleted_file"
:
false
},{
"diff"
:
"--- /dev/null
\n
+++ b/gitlab-shell
\n
@@ -0,0 +1 @@
\n
+Subproject commit 79bceae69cb5750d6567b223597999bfa91cb3b9
\n
"
,
"new_path"
:
"gitlab-shell"
,
"old_path"
:
"gitlab-shell"
,
"a_mode"
:
"0"
,
"b_mode"
:
"160000"
,
"new_file"
:
true
,
"renamed_file"
:
false
,
"deleted_file"
:
false
}],
"merge_request_id"
:
2
,
"created_at"
:
"2016-03-14T11:56:58.353Z"
,
"updated_at"
:
"2016-03-14T11:56:58.635Z"
,
"base_commit_sha"
:
"ae73cb07c9eeaf35924a10f713b364d32b2dd34f"
,
"real_size"
:
"8"
}}],
"commit_statuses"
:[{
"id"
:
2
,
"project_id"
:
null
,
"status"
:
"success"
,
"finished_at"
:
"2016-01-26T07:23:42.000Z"
,
"trace"
:
null
,
"created_at"
:
"2016-03-14T11:57:01.483Z"
,
"updated_at"
:
"2016-03-14T11:57:02.190Z"
,
"started_at"
:
"2016-01-26T07:21:42.000Z"
,
"runner_id"
:
null
,
"coverage"
:
null
,
"commit_id"
:
2
,
"commands"
:
null
,
"job_id"
:
null
,
"name"
:
"default"
,
"deploy"
:
false
,
"options"
:
null
,
"allow_failure"
:
false
,
"stage"
:
null
,
"trigger_request_id"
:
null
,
"stage_idx"
:
null
,
"tag"
:
null
,
"ref"
:
null
,
"user_id"
:
null
,
"target_url"
:
null
,
"description"
:
"commit status"
,
"artifacts_file"
:
null
,
"gl_project_id"
:
14
,
"artifacts_metadata"
:
null
,
"erased_by_id"
:
null
,
"erased_at"
:
null
,
"commit"
:{
"id"
:
2
,
"project_id"
:
13
,
"ref"
:
null
,
"sha"
:
"97de212e80737a608d939f648d959671fb0a0142"
,
"before_sha"
:
null
,
"push_data"
:
null
,
"created_at"
:
"2016-03-14T11:57:01.468Z"
,
"updated_at"
:
"2016-03-14T11:57:01.468Z"
,
"tag"
:
false
,
"yaml_errors"
:
null
,
"committed_at"
:
null
,
"gl_project_id"
:
13
}}]}
\ No newline at end of file
{
"name"
:
"searchable_project"
,
"path"
:
"gitlabhq"
,
"description"
:
null
,
"issues_enabled"
:
true
,
"wall_enabled"
:
false
,
"merge_requests_enabled"
:
true
,
"wiki_enabled"
:
true
,
"snippets_enabled"
:
true
,
"visibility_level"
:
20
,
"archived"
:
false
,
"issues"
:
[
{
"id"
:
1
,
"title"
:
"Ad est est quia inventore eius suscipit molestiae."
,
"assignee_id"
:
1
,
"author_id"
:
2
,
"project_id"
:
7
,
"created_at"
:
"2016-04-12T13:26:48.974Z"
,
"updated_at"
:
"2016-04-12T13:26:55.496Z"
,
"position"
:
0
,
"branch_name"
:
null
,
"description"
:
null
,
"milestone_id"
:
null
,
"state"
:
"opened"
,
"iid"
:
1
,
"updated_by_id"
:
null
,
"confidential"
:
false
,
"deleted_at"
:
null
,
"moved_to_id"
:
null
,
"notes"
:
[
{
"id"
:
1
,
"note"
:
":+1: issue"
,
"noteable_type"
:
"Issue"
,
"author_id"
:
21
,
"created_at"
:
"2016-04-12T13:26:55.480Z"
,
"updated_at"
:
"2016-04-12T13:26:55.480Z"
,
"project_id"
:
8
,
"attachment"
:
{
"url"
:
null
},
"line_code"
:
null
,
"commit_id"
:
null
,
"noteable_id"
:
1
,
"system"
:
false
,
"st_diff"
:
null
,
"updated_by_id"
:
null
,
"is_award"
:
false
}
]
}
],
"labels"
:
[
{
"id"
:
1
,
"title"
:
"label1"
,
"color"
:
"#990000"
,
"project_id"
:
7
,
"created_at"
:
"2016-04-12T13:26:51.027Z"
,
"updated_at"
:
"2016-04-12T13:26:53.799Z"
,
"template"
:
false
,
"description"
:
null
}
],
"milestones"
:
[
{
"id"
:
1
,
"title"
:
"Milestone v1.2"
,
"project_id"
:
7
,
"description"
:
null
,
"due_date"
:
null
,
"created_at"
:
"2016-04-12T13:26:53.993Z"
,
"updated_at"
:
"2016-04-12T13:26:53.993Z"
,
"state"
:
"active"
,
"iid"
:
1
}
],
"snippets"
:
[
{
"id"
:
1
,
"title"
:
"Possimus harum est mollitia fugiat in."
,
"content"
:
"Itaque ipsum culpa quibusdam mollitia."
,
"author_id"
:
10
,
"project_id"
:
7
,
"created_at"
:
"2016-04-12T13:26:51.821Z"
,
"updated_at"
:
"2016-04-12T13:26:53.811Z"
,
"file_name"
:
"thomas_marquardt"
,
"visibility_level"
:
0
}
],
"releases"
:
[
{
"id"
:
1
,
"tag"
:
"v1.1.0"
,
"description"
:
"Awesome release"
,
"project_id"
:
7
,
"created_at"
:
"2016-04-12T13:26:52.353Z"
,
"updated_at"
:
"2016-04-12T13:26:53.823Z"
}
],
"events"
:
[
{
"id"
:
1
,
"target_type"
:
null
,
"target_id"
:
null
,
"title"
:
null
,
"data"
:
null
,
"project_id"
:
7
,
"created_at"
:
"2016-04-12T13:26:57.139Z"
,
"updated_at"
:
"2016-04-12T13:26:57.139Z"
,
"action"
:
8
,
"author_id"
:
1
}
],
"project_members"
:
[
{
"id"
:
1
,
"user"
:
{
"id"
:
1
,
"email"
:
"maybell_auer@gleasonolson.com"
,
"created_at"
:
"2016-04-12T13:26:47.499Z"
,
"updated_at"
:
"2016-04-12T13:26:47.499Z"
,
"name"
:
"Charles Nitzsche"
,
"admin"
:
false
,
"projects_limit"
:
42
,
"skype"
:
""
,
"linkedin"
:
""
,
"twitter"
:
""
,
"authentication_token"
:
"nCBdoTPWP-5adipsFwEq"
,
"theme_id"
:
2
,
"bio"
:
null
,
"username"
:
"koby.zieme1"
,
"can_create_group"
:
true
,
"can_create_team"
:
false
,
"state"
:
"active"
,
"color_scheme_id"
:
1
,
"notification_level"
:
1
,
"password_expires_at"
:
null
,
"created_by_id"
:
null
,
"last_credential_check_at"
:
null
,
"avatar"
:
{
"url"
:
null
},
"hide_no_ssh_key"
:
false
,
"website_url"
:
""
,
"notification_email"
:
"maybell_auer@gleasonolson.com"
,
"hide_no_password"
:
false
,
"password_automatically_set"
:
false
,
"location"
:
null
,
"encrypted_otp_secret"
:
null
,
"encrypted_otp_secret_iv"
:
null
,
"encrypted_otp_secret_salt"
:
null
,
"otp_required_for_login"
:
false
,
"otp_backup_codes"
:
null
,
"public_email"
:
""
,
"dashboard"
:
"projects"
,
"project_view"
:
"readme"
,
"consumed_timestep"
:
null
,
"layout"
:
"fixed"
,
"hide_project_limit"
:
false
,
"otp_grace_period_started_at"
:
null
,
"ldap_email"
:
false
,
"external"
:
false
}
}
],
"merge_requests"
:
[
{
"id"
:
1
,
"target_branch"
:
"feature"
,
"source_branch"
:
"master"
,
"source_project_id"
:
2
,
"author_id"
:
5
,
"assignee_id"
:
null
,
"title"
:
"Natus vel molestiae ab et dolorem odit ut."
,
"created_at"
:
"2016-04-12T13:26:49.813Z"
,
"updated_at"
:
"2016-04-12T13:26:56.806Z"
,
"milestone_id"
:
null
,
"state"
:
"opened"
,
"merge_status"
:
"can_be_merged"
,
"target_project_id"
:
7
,
"iid"
:
1
,
"description"
:
null
,
"position"
:
0
,
"locked_at"
:
null
,
"updated_by_id"
:
null
,
"merge_error"
:
null
,
"merge_params"
:
{
},
"merge_when_build_succeeds"
:
false
,
"merge_user_id"
:
null
,
"merge_commit_sha"
:
null
,
"deleted_at"
:
null
,
"merge_request_diff"
:
{
"id"
:
1
,
"state"
:
"collected"
,
"st_commits"
:
[
{
"id"
:
"5937ac0a7beb003549fc5fd26fc247adbce4a52e"
,
"message"
:
"Add submodule from gitlab.com
\n\n
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
\n
"
,
"parent_ids"
:
[
"570e7b2abdd848b95f2f578043fc23bd6f6fd24d"
],
"authored_date"
:
"2014-02-27T10:01:38.000+01:00"
,
"author_name"
:
"Dmitriy Zaporozhets"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"committed_date"
:
"2014-02-27T10:01:38.000+01:00"
,
"committer_name"
:
"Dmitriy Zaporozhets"
,
"committer_email"
:
"dmitriy.zaporozhets@gmail.com"
},
{
"id"
:
"570e7b2abdd848b95f2f578043fc23bd6f6fd24d"
,
"message"
:
"Change some files
\n\n
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
\n
"
,
"parent_ids"
:
[
"6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"
],
"authored_date"
:
"2014-02-27T09:57:31.000+01:00"
,
"author_name"
:
"Dmitriy Zaporozhets"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"committed_date"
:
"2014-02-27T09:57:31.000+01:00"
,
"committer_name"
:
"Dmitriy Zaporozhets"
,
"committer_email"
:
"dmitriy.zaporozhets@gmail.com"
},
{
"id"
:
"6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"
,
"message"
:
"More submodules
\n\n
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
\n
"
,
"parent_ids"
:
[
"d14d6c0abdd253381df51a723d58691b2ee1ab08"
],
"authored_date"
:
"2014-02-27T09:54:21.000+01:00"
,
"author_name"
:
"Dmitriy Zaporozhets"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"committed_date"
:
"2014-02-27T09:54:21.000+01:00"
,
"committer_name"
:
"Dmitriy Zaporozhets"
,
"committer_email"
:
"dmitriy.zaporozhets@gmail.com"
},
{
"id"
:
"d14d6c0abdd253381df51a723d58691b2ee1ab08"
,
"message"
:
"Remove ds_store files
\n\n
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
\n
"
,
"parent_ids"
:
[
"c1acaa58bbcbc3eafe538cb8274ba387047b69f8"
],
"authored_date"
:
"2014-02-27T09:49:50.000+01:00"
,
"author_name"
:
"Dmitriy Zaporozhets"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"committed_date"
:
"2014-02-27T09:49:50.000+01:00"
,
"committer_name"
:
"Dmitriy Zaporozhets"
,
"committer_email"
:
"dmitriy.zaporozhets@gmail.com"
},
{
"id"
:
"c1acaa58bbcbc3eafe538cb8274ba387047b69f8"
,
"message"
:
"Ignore DS files
\n\n
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
\n
"
,
"parent_ids"
:
[
"ae73cb07c9eeaf35924a10f713b364d32b2dd34f"
],
"authored_date"
:
"2014-02-27T09:48:32.000+01:00"
,
"author_name"
:
"Dmitriy Zaporozhets"
,
"author_email"
:
"dmitriy.zaporozhets@gmail.com"
,
"committed_date"
:
"2014-02-27T09:48:32.000+01:00"
,
"committer_name"
:
"Dmitriy Zaporozhets"
,
"committer_email"
:
"dmitriy.zaporozhets@gmail.com"
}
],
"st_diffs"
:
[
{
"diff"
:
"Binary files a/.DS_Store and /dev/null differ
\n
"
,
"new_path"
:
".DS_Store"
,
"old_path"
:
".DS_Store"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"0"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
true
,
"too_large"
:
false
},
{
"diff"
:
"--- a/.gitignore
\n
+++ b/.gitignore
\n
@@ -17,3 +17,4 @@ rerun.txt
\n
pickle-email-*.html
\n
.project
\n
config/initializers/secret_token.rb
\n
+.DS_Store
\n
"
,
"new_path"
:
".gitignore"
,
"old_path"
:
".gitignore"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"100644"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
false
,
"too_large"
:
false
},
{
"diff"
:
"--- a/.gitmodules
\n
+++ b/.gitmodules
\n
@@ -1,3 +1,9 @@
\n
[submodule
\"
six
\"
]
\n
\t
path = six
\n
\t
url = git://github.com/randx/six.git
\n
+[submodule
\"
gitlab-shell
\"
]
\n
+
\t
path = gitlab-shell
\n
+
\t
url = https://github.com/gitlabhq/gitlab-shell.git
\n
+[submodule
\"
gitlab-grack
\"
]
\n
+
\t
path = gitlab-grack
\n
+
\t
url = https://gitlab.com/gitlab-org/gitlab-grack.git
\n
"
,
"new_path"
:
".gitmodules"
,
"old_path"
:
".gitmodules"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"100644"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
false
,
"too_large"
:
false
},
{
"diff"
:
"Binary files a/files/.DS_Store and /dev/null differ
\n
"
,
"new_path"
:
"files/.DS_Store"
,
"old_path"
:
"files/.DS_Store"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"0"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
true
,
"too_large"
:
false
},
{
"diff"
:
"--- a/files/ruby/popen.rb
\n
+++ b/files/ruby/popen.rb
\n
@@ -6,12 +6,18 @@ module Popen
\n
\n
def popen(cmd, path=nil)
\n
unless cmd.is_a?(Array)
\n
- raise
\"
System commands must be given as an array of strings
\"\n
+ raise RuntimeError,
\"
System commands must be given as an array of strings
\"\n
end
\n
\n
path ||= Dir.pwd
\n
- vars = {
\"
PWD
\"
=> path }
\n
- options = { chdir: path }
\n
+
\n
+ vars = {
\n
+
\"
PWD
\"
=> path
\n
+ }
\n
+
\n
+ options = {
\n
+ chdir: path
\n
+ }
\n
\n
unless File.directory?(path)
\n
FileUtils.mkdir_p(path)
\n
@@ -19,6 +25,7 @@ module Popen
\n
\n
@cmd_output =
\"\"\n
@cmd_status = 0
\n
+
\n
Open3.popen3(vars, *cmd, options) do |stdin, stdout, stderr, wait_thr|
\n
@cmd_output << stdout.read
\n
@cmd_output << stderr.read
\n
"
,
"new_path"
:
"files/ruby/popen.rb"
,
"old_path"
:
"files/ruby/popen.rb"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"100644"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
false
,
"too_large"
:
false
},
{
"diff"
:
"--- a/files/ruby/regex.rb
\n
+++ b/files/ruby/regex.rb
\n
@@ -19,14 +19,12 @@ module Gitlab
\n
end
\n
\n
def archive_formats_regex
\n
- #|zip|tar| tar.gz | tar.bz2 |
\n
- /(zip|tar|tar
\\
.gz|tgz|gz|tar
\\
.bz2|tbz|tbz2|tb2|bz2)/
\n
+ /(zip|tar|7z|tar
\\
.gz|tgz|gz|tar
\\
.bz2|tbz|tbz2|tb2|bz2)/
\n
end
\n
\n
def git_reference_regex
\n
# Valid git ref regex, see:
\n
# https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html
\n
-
\n
%r{
\n
(?!
\n
(?# doesn't begins with)
\n
"
,
"new_path"
:
"files/ruby/regex.rb"
,
"old_path"
:
"files/ruby/regex.rb"
,
"a_mode"
:
"100644"
,
"b_mode"
:
"100644"
,
"new_file"
:
false
,
"renamed_file"
:
false
,
"deleted_file"
:
false
,
"too_large"
:
false
},
{
"diff"
:
"--- /dev/null
\n
+++ b/gitlab-grack
\n
@@ -0,0 +1 @@
\n
+Subproject commit 645f6c4c82fd3f5e06f67134450a570b795e55a6
\n
"
,
"new_path"
:
"gitlab-grack"
,
"old_path"
:
"gitlab-grack"
,
"a_mode"
:
"0"
,
"b_mode"
:
"160000"
,
"new_file"
:
true
,
"renamed_file"
:
false
,
"deleted_file"
:
false
,
"too_large"
:
false
},
{
"diff"
:
"--- /dev/null
\n
+++ b/gitlab-shell
\n
@@ -0,0 +1 @@
\n
+Subproject commit 79bceae69cb5750d6567b223597999bfa91cb3b9
\n
"
,
"new_path"
:
"gitlab-shell"
,
"old_path"
:
"gitlab-shell"
,
"a_mode"
:
"0"
,
"b_mode"
:
"160000"
,
"new_file"
:
true
,
"renamed_file"
:
false
,
"deleted_file"
:
false
,
"too_large"
:
false
}
],
"merge_request_id"
:
1
,
"created_at"
:
"2016-04-12T13:26:49.896Z"
,
"updated_at"
:
"2016-04-12T13:26:50.189Z"
,
"base_commit_sha"
:
"ae73cb07c9eeaf35924a10f713b364d32b2dd34f"
,
"real_size"
:
"8"
},
"notes"
:
[
{
"id"
:
2
,
"note"
:
":+1: merge_request"
,
"noteable_type"
:
"MergeRequest"
,
"author_id"
:
24
,
"created_at"
:
"2016-04-12T13:26:56.790Z"
,
"updated_at"
:
"2016-04-12T13:26:56.790Z"
,
"project_id"
:
9
,
"attachment"
:
{
"url"
:
null
},
"line_code"
:
null
,
"commit_id"
:
null
,
"noteable_id"
:
1
,
"system"
:
false
,
"st_diff"
:
null
,
"updated_by_id"
:
null
,
"is_award"
:
false
}
]
}
],
"commit_statuses"
:
[
{
"id"
:
1
,
"project_id"
:
null
,
"status"
:
"success"
,
"finished_at"
:
"2016-01-26T07:23:42.000Z"
,
"trace"
:
null
,
"created_at"
:
"2016-04-12T13:26:53.034Z"
,
"updated_at"
:
"2016-04-12T13:26:53.850Z"
,
"started_at"
:
"2016-01-26T07:21:42.000Z"
,
"runner_id"
:
null
,
"coverage"
:
null
,
"commit_id"
:
1
,
"commands"
:
null
,
"job_id"
:
null
,
"name"
:
"default"
,
"deploy"
:
false
,
"options"
:
null
,
"allow_failure"
:
false
,
"stage"
:
null
,
"trigger_request_id"
:
null
,
"stage_idx"
:
null
,
"tag"
:
null
,
"ref"
:
null
,
"user_id"
:
null
,
"target_url"
:
null
,
"description"
:
"commit status"
,
"artifacts_file"
:
null
,
"gl_project_id"
:
7
,
"artifacts_metadata"
:
null
,
"erased_by_id"
:
null
,
"erased_at"
:
null
,
"commit"
:
{
"id"
:
1
,
"project_id"
:
6
,
"ref"
:
null
,
"sha"
:
"97de212e80737a608d939f648d959671fb0a0142"
,
"before_sha"
:
null
,
"push_data"
:
null
,
"created_at"
:
"2016-04-12T13:26:53.010Z"
,
"updated_at"
:
"2016-04-12T13:26:53.010Z"
,
"tag"
:
false
,
"yaml_errors"
:
null
,
"committed_at"
:
null
,
"gl_project_id"
:
6
}
}
]
}
\ No newline at end of file
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