gitlab 4.1.0 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/lib/gitlab/client.rb +4 -0
- data/lib/gitlab/client/award_emojis.rb +135 -0
- data/lib/gitlab/client/boards.rb +88 -0
- data/lib/gitlab/client/branches.rb +12 -7
- data/lib/gitlab/client/commits.rb +6 -6
- data/lib/gitlab/client/environments.rb +87 -0
- data/lib/gitlab/client/labels.rb +33 -4
- data/lib/gitlab/client/merge_requests.rb +0 -59
- data/lib/gitlab/client/notes.rb +106 -0
- data/lib/gitlab/client/projects.rb +48 -44
- data/lib/gitlab/client/repository_files.rb +32 -26
- data/lib/gitlab/client/system_hooks.rb +5 -2
- data/lib/gitlab/client/todos.rb +44 -0
- data/lib/gitlab/version.rb +1 -1
- data/spec/fixtures/board_list.json +1 -0
- data/spec/fixtures/board_lists.json +1 -0
- data/spec/fixtures/boards.json +1 -0
- data/spec/fixtures/environment.json +6 -0
- data/spec/fixtures/environments.json +14 -0
- data/spec/fixtures/issue_award_emoji.json +16 -0
- data/spec/fixtures/issue_award_emojis.json +34 -0
- data/spec/fixtures/label.json +1 -1
- data/spec/fixtures/label_unsubscribe.json +1 -0
- data/spec/fixtures/merge_request_award_emoji.json +16 -0
- data/spec/fixtures/merge_request_award_emojis.json +34 -0
- data/spec/fixtures/note_award_emoji.json +16 -0
- data/spec/fixtures/note_award_emojis.json +18 -0
- data/spec/fixtures/snippet_award_emoji.json +16 -0
- data/spec/fixtures/snippet_award_emojis.json +34 -0
- data/spec/fixtures/todo.json +73 -0
- data/spec/fixtures/todos.json +148 -0
- data/spec/gitlab/client/award_emojis_spec.rb +391 -0
- data/spec/gitlab/client/boards_spec.rb +94 -0
- data/spec/gitlab/client/branches_spec.rb +22 -5
- data/spec/gitlab/client/commits_spec.rb +2 -2
- data/spec/gitlab/client/environments_spec.rb +132 -0
- data/spec/gitlab/client/groups_spec.rb +10 -12
- data/spec/gitlab/client/labels_spec.rb +32 -0
- data/spec/gitlab/client/notes_spec.rb +128 -0
- data/spec/gitlab/client/projects_spec.rb +20 -10
- data/spec/gitlab/client/repository_files_spec.rb +30 -12
- data/spec/gitlab/client/system_hooks_spec.rb +2 -2
- data/spec/gitlab/client/todos_spec.rb +45 -0
- metadata +46 -2
@@ -45,17 +45,19 @@ class Gitlab::Client
|
|
45
45
|
# Gitlab.create_file(42, "path", "branch", "content", "commit message")
|
46
46
|
#
|
47
47
|
# @param [Integer, String] project The ID or name of a project.
|
48
|
-
# @param [String] full path to new file.
|
49
|
-
# @param [String] the name of the branch.
|
50
|
-
# @param [String] file content.
|
51
|
-
# @param [String] commit message.
|
48
|
+
# @param [String] path full path to new file.
|
49
|
+
# @param [String] branch the name of the branch.
|
50
|
+
# @param [String] content file content.
|
51
|
+
# @param [String] commit_message ...commit message.
|
52
|
+
# @param [Hash] options Optional additional details for commit
|
53
|
+
# @option options [String] :author_name Commit author's name
|
54
|
+
# @option options [String] :author_email Commit author's email address
|
52
55
|
# @return [Gitlab::ObjectifiedHash]
|
53
|
-
def create_file(project, path, branch, content, commit_message)
|
54
|
-
post("/projects/#{url_encode project}/repository/files", body: {
|
55
|
-
|
56
|
-
branch_name: branch,
|
56
|
+
def create_file(project, path, branch, content, commit_message, options = {})
|
57
|
+
post("/projects/#{url_encode project}/repository/files/#{url_encode path}", body: {
|
58
|
+
branch: branch,
|
57
59
|
commit_message: commit_message
|
58
|
-
}.merge(encoded_content_attributes(content)))
|
60
|
+
}.merge(options).merge(encoded_content_attributes(content)))
|
59
61
|
end
|
60
62
|
|
61
63
|
# Edits an existing repository file.
|
@@ -64,17 +66,19 @@ class Gitlab::Client
|
|
64
66
|
# Gitlab.edit_file(42, "path", "branch", "content", "commit message")
|
65
67
|
#
|
66
68
|
# @param [Integer, String] project The ID or name of a project.
|
67
|
-
# @param [String] full path to
|
68
|
-
# @param [String] the name of the branch.
|
69
|
-
# @param [String] file content.
|
70
|
-
# @param [String] commit message.
|
69
|
+
# @param [String] path full path of file to update.
|
70
|
+
# @param [String] branch the name of the branch to commit changes to.
|
71
|
+
# @param [String] content new file content.
|
72
|
+
# @param [String] commit_message ...commit message.
|
73
|
+
# @param [Hash] options Optional additional details for commit
|
74
|
+
# @option options [String] :author_name Commit author's name
|
75
|
+
# @option options [String] :author_email Commit author's email address
|
71
76
|
# @return [Gitlab::ObjectifiedHash]
|
72
|
-
def edit_file(project, path, branch, content, commit_message)
|
73
|
-
put("/projects/#{url_encode project}/repository/files", body: {
|
74
|
-
|
75
|
-
branch_name: branch,
|
77
|
+
def edit_file(project, path, branch, content, commit_message, options = {})
|
78
|
+
put("/projects/#{url_encode project}/repository/files/#{url_encode path}", body: {
|
79
|
+
branch: branch,
|
76
80
|
commit_message: commit_message
|
77
|
-
}.merge(encoded_content_attributes(content)))
|
81
|
+
}.merge(options).merge(encoded_content_attributes(content)))
|
78
82
|
end
|
79
83
|
|
80
84
|
# Removes an existing repository file.
|
@@ -83,16 +87,18 @@ class Gitlab::Client
|
|
83
87
|
# Gitlab.remove_file(42, "path", "branch", "commit message")
|
84
88
|
#
|
85
89
|
# @param [Integer, String] project The ID or name of a project.
|
86
|
-
# @param [String] full path to
|
87
|
-
# @param [String] the name of the branch.
|
88
|
-
# @param [String] commit message
|
90
|
+
# @param [String] path full path of file to delete.
|
91
|
+
# @param [String] branch the name of the branch to commit the deletion to.
|
92
|
+
# @param [String] commit_message ...a commit message ;)
|
93
|
+
# @param [Hash] options Optional additional details for commit
|
94
|
+
# @option options [String] :author_name Commit author's name
|
95
|
+
# @option options [String] :author_email Commit author's email address
|
89
96
|
# @return [Gitlab::ObjectifiedHash]
|
90
|
-
def remove_file(project, path, branch, commit_message)
|
91
|
-
delete("/projects/#{url_encode project}/repository/files", body: {
|
92
|
-
|
93
|
-
branch_name: branch,
|
97
|
+
def remove_file(project, path, branch, commit_message, options = {})
|
98
|
+
delete("/projects/#{url_encode project}/repository/files/#{url_encode path}", body: {
|
99
|
+
branch: branch,
|
94
100
|
commit_message: commit_message
|
95
|
-
})
|
101
|
+
}.merge(options))
|
96
102
|
end
|
97
103
|
|
98
104
|
private
|
@@ -24,9 +24,12 @@ class Gitlab::Client
|
|
24
24
|
# Gitlab.add_system_hook('https://api.example.net/v1/hook')
|
25
25
|
#
|
26
26
|
# @param [String] url The hook URL.
|
27
|
+
# @param [Hash] options Additional options, as allowed by Gitlab API, including but not limited to:
|
28
|
+
# @option options [String] :token A secret token for Gitlab to send in the `X-Gitlab-Token` header for authentication.
|
29
|
+
# @option options [boolean] :enable_ssl_verification `false` will cause Gitlab to ignore invalid/unsigned certificate errors (default is `true`)
|
27
30
|
# @return [Gitlab::ObjectifiedHash]
|
28
|
-
def add_hook(url)
|
29
|
-
post("/hooks", body:
|
31
|
+
def add_hook(url, options = {})
|
32
|
+
post("/hooks", body: options.merge(url: url))
|
30
33
|
end
|
31
34
|
alias_method :add_system_hook, :add_hook
|
32
35
|
|
@@ -0,0 +1,44 @@
|
|
1
|
+
class Gitlab::Client
|
2
|
+
# Defines methods related to todos
|
3
|
+
# @see https://docs.gitlab.com/ce/api/todos.html
|
4
|
+
module Todos
|
5
|
+
# Gets a list of todos.
|
6
|
+
#
|
7
|
+
# @example
|
8
|
+
# Gitlab.todos
|
9
|
+
# Gitlab.todos({ action: 'assigned' })
|
10
|
+
# Gitlab.todos({ state: 'pending' })
|
11
|
+
#
|
12
|
+
# @param [Hash] options A customizable set of options.
|
13
|
+
# @option options [Integer] :action The action to be filtered. Can be `assigned`, `mentioned`, `build_failed`, `marked`, or `approval_required`.
|
14
|
+
# @option options [Integer] :author_id The ID of an author
|
15
|
+
# @option options [Integer] :project_id The ID of a project
|
16
|
+
# @option options [Integer] :state The state of the todo. Can be either `pending` or `done`
|
17
|
+
# @option options [Integer] :type The type of a todo. Can be either `Issue` or `MergeRequest`
|
18
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
19
|
+
def todos(options={})
|
20
|
+
get("/todos", query: options)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Marks a single pending todo for the current user as done.
|
24
|
+
#
|
25
|
+
# @example
|
26
|
+
# Gitlab.mark_todo_as_done(42)
|
27
|
+
#
|
28
|
+
# @param [Integer] id The ID of the todo.
|
29
|
+
# @return [Gitlab::ObjectifiedHash]
|
30
|
+
def mark_todo_as_done(id)
|
31
|
+
post("/todos/#{id}/mark_as_done")
|
32
|
+
end
|
33
|
+
|
34
|
+
# Marks all todos for the current user as done
|
35
|
+
#
|
36
|
+
# @example
|
37
|
+
# Gitlab.mark_all_todos_as_done
|
38
|
+
#
|
39
|
+
# @return [void] This API call returns an empty response body.
|
40
|
+
def mark_all_todos_as_done
|
41
|
+
post("/todos/mark_as_done")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/gitlab/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{ "id" : 1, "label" : { "name" : "Testing", "color" : "#F0AD4E", "description" : null }, "position" : 1 }
|
@@ -0,0 +1 @@
|
|
1
|
+
[ { "id" : 1, "label" : { "name" : "Testing", "color" : "#F0AD4E", "description" : null }, "position" : 1 }, { "id" : 2, "label" : { "name" : "Ready", "color" : "#FF0000", "description" : null }, "position" : 2 }, { "id" : 3, "label" : { "name" : "Production", "color" : "#FF5F00", "description" : null }, "position" : 3 } ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ { "id" : 1, "lists" : [ { "id" : 1, "label" : { "name" : "Testing", "color" : "#F0AD4E", "description" : null }, "position" : 1 }, { "id" : 2, "label" : { "name" : "Ready", "color" : "#FF0000", "description" : null }, "position" : 2 }, { "id" : 3, "label" : { "name" : "Production", "color" : "#FF5F00", "description" : null }, "position" : 3 } ] } ]
|
@@ -0,0 +1,14 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": 1,
|
4
|
+
"name": "review/fix-foo",
|
5
|
+
"slug": "review-fix-foo-dfjre3",
|
6
|
+
"external_url": "https://review-fix-foo-dfjre3.example.gitlab.com"
|
7
|
+
},
|
8
|
+
{
|
9
|
+
"id": 12,
|
10
|
+
"name": "review/fix-bar",
|
11
|
+
"slug": "review-fix-bar-dbwr18",
|
12
|
+
"external_url": "https://review-fix-bar-dbwr18.example.gitlab.com"
|
13
|
+
}
|
14
|
+
]
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"id": 4,
|
3
|
+
"name": "blowfish",
|
4
|
+
"user": {
|
5
|
+
"name": "Administrator",
|
6
|
+
"username": "root",
|
7
|
+
"id": 1,
|
8
|
+
"state": "active",
|
9
|
+
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
10
|
+
"web_url": "http://gitlab.example.com/root"
|
11
|
+
},
|
12
|
+
"created_at": "2016-06-15T10:09:34.206Z",
|
13
|
+
"updated_at": "2016-06-15T10:09:34.206Z",
|
14
|
+
"awardable_id": 80,
|
15
|
+
"awardable_type": "Issue"
|
16
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": 4,
|
4
|
+
"name": "1234",
|
5
|
+
"user": {
|
6
|
+
"name": "Administrator",
|
7
|
+
"username": "root",
|
8
|
+
"id": 1,
|
9
|
+
"state": "active",
|
10
|
+
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
11
|
+
"web_url": "http://gitlab.example.com/root"
|
12
|
+
},
|
13
|
+
"created_at": "2016-06-15T10:09:34.206Z",
|
14
|
+
"updated_at": "2016-06-15T10:09:34.206Z",
|
15
|
+
"awardable_id": 80,
|
16
|
+
"awardable_type": "Issue"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"id": 1,
|
20
|
+
"name": "microphone",
|
21
|
+
"user": {
|
22
|
+
"name": "User 4",
|
23
|
+
"username": "user4",
|
24
|
+
"id": 26,
|
25
|
+
"state": "active",
|
26
|
+
"avatar_url": "http://www.gravatar.com/avatar/7e65550957227bd38fe2d7fbc6fd2f7b?s=80&d=identicon",
|
27
|
+
"web_url": "http://gitlab.example.com/user4"
|
28
|
+
},
|
29
|
+
"created_at": "2016-06-15T10:09:34.177Z",
|
30
|
+
"updated_at": "2016-06-15T10:09:34.177Z",
|
31
|
+
"awardable_id": 80,
|
32
|
+
"awardable_type": "Issue"
|
33
|
+
}
|
34
|
+
]
|
data/spec/fixtures/label.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name": "Backlog", "color": "#DD10AA"}
|
1
|
+
{"name": "Backlog", "color": "#DD10AA", "subscribed": true}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"name": "Backlog", "color": "#DD10AA", "subscribed": false}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"id": 4,
|
3
|
+
"name": "blowfish",
|
4
|
+
"user": {
|
5
|
+
"name": "Administrator",
|
6
|
+
"username": "root",
|
7
|
+
"id": 1,
|
8
|
+
"state": "active",
|
9
|
+
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
10
|
+
"web_url": "http://gitlab.example.com/root"
|
11
|
+
},
|
12
|
+
"created_at": "2016-06-15T10:09:34.206Z",
|
13
|
+
"updated_at": "2016-06-15T10:09:34.206Z",
|
14
|
+
"awardable_id": 80,
|
15
|
+
"awardable_type": "MergeRequest"
|
16
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": 4,
|
4
|
+
"name": "1234",
|
5
|
+
"user": {
|
6
|
+
"name": "Administrator",
|
7
|
+
"username": "root",
|
8
|
+
"id": 1,
|
9
|
+
"state": "active",
|
10
|
+
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
11
|
+
"web_url": "http://gitlab.example.com/root"
|
12
|
+
},
|
13
|
+
"created_at": "2016-06-15T10:09:34.206Z",
|
14
|
+
"updated_at": "2016-06-15T10:09:34.206Z",
|
15
|
+
"awardable_id": 80,
|
16
|
+
"awardable_type": "MergeRequest"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"id": 1,
|
20
|
+
"name": "microphone",
|
21
|
+
"user": {
|
22
|
+
"name": "User 4",
|
23
|
+
"username": "user4",
|
24
|
+
"id": 26,
|
25
|
+
"state": "active",
|
26
|
+
"avatar_url": "http://www.gravatar.com/avatar/7e65550957227bd38fe2d7fbc6fd2f7b?s=80&d=identicon",
|
27
|
+
"web_url": "http://gitlab.example.com/user4"
|
28
|
+
},
|
29
|
+
"created_at": "2016-06-15T10:09:34.177Z",
|
30
|
+
"updated_at": "2016-06-15T10:09:34.177Z",
|
31
|
+
"awardable_id": 80,
|
32
|
+
"awardable_type": "MergeRequest"
|
33
|
+
}
|
34
|
+
]
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"id": 4,
|
3
|
+
"name": "mood_bubble_lightning",
|
4
|
+
"user": {
|
5
|
+
"name": "User 4",
|
6
|
+
"username": "user4",
|
7
|
+
"id": 26,
|
8
|
+
"state": "active",
|
9
|
+
"avatar_url": "http://www.gravatar.com/avatar/7e65550957227bd38fe2d7fbc6fd2f7b?s=80&d=identicon",
|
10
|
+
"web_url": "http://gitlab.example.com/user4"
|
11
|
+
},
|
12
|
+
"created_at": "2016-06-15T10:09:34.197Z",
|
13
|
+
"updated_at": "2016-06-15T10:09:34.197Z",
|
14
|
+
"awardable_id": 1,
|
15
|
+
"awardable_type": "Note"
|
16
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": 2,
|
4
|
+
"name": "mood_bubble_lightning",
|
5
|
+
"user": {
|
6
|
+
"name": "User 4",
|
7
|
+
"username": "user4",
|
8
|
+
"id": 26,
|
9
|
+
"state": "active",
|
10
|
+
"avatar_url": "http://www.gravatar.com/avatar/7e65550957227bd38fe2d7fbc6fd2f7b?s=80&d=identicon",
|
11
|
+
"web_url": "http://gitlab.example.com/user4"
|
12
|
+
},
|
13
|
+
"created_at": "2016-06-15T10:09:34.197Z",
|
14
|
+
"updated_at": "2016-06-15T10:09:34.197Z",
|
15
|
+
"awardable_id": 1,
|
16
|
+
"awardable_type": "Note"
|
17
|
+
}
|
18
|
+
]
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"id": 4,
|
3
|
+
"name": "blowfish",
|
4
|
+
"user": {
|
5
|
+
"name": "Administrator",
|
6
|
+
"username": "root",
|
7
|
+
"id": 1,
|
8
|
+
"state": "active",
|
9
|
+
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
10
|
+
"web_url": "http://gitlab.example.com/root"
|
11
|
+
},
|
12
|
+
"created_at": "2016-06-15T10:09:34.206Z",
|
13
|
+
"updated_at": "2016-06-15T10:09:34.206Z",
|
14
|
+
"awardable_id": 80,
|
15
|
+
"awardable_type": "Snippet"
|
16
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": 4,
|
4
|
+
"name": "1234",
|
5
|
+
"user": {
|
6
|
+
"name": "Administrator",
|
7
|
+
"username": "root",
|
8
|
+
"id": 1,
|
9
|
+
"state": "active",
|
10
|
+
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
11
|
+
"web_url": "http://gitlab.example.com/root"
|
12
|
+
},
|
13
|
+
"created_at": "2016-06-15T10:09:34.206Z",
|
14
|
+
"updated_at": "2016-06-15T10:09:34.206Z",
|
15
|
+
"awardable_id": 80,
|
16
|
+
"awardable_type": "Snippet"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"id": 1,
|
20
|
+
"name": "microphone",
|
21
|
+
"user": {
|
22
|
+
"name": "User 4",
|
23
|
+
"username": "user4",
|
24
|
+
"id": 26,
|
25
|
+
"state": "active",
|
26
|
+
"avatar_url": "http://www.gravatar.com/avatar/7e65550957227bd38fe2d7fbc6fd2f7b?s=80&d=identicon",
|
27
|
+
"web_url": "http://gitlab.example.com/user4"
|
28
|
+
},
|
29
|
+
"created_at": "2016-06-15T10:09:34.177Z",
|
30
|
+
"updated_at": "2016-06-15T10:09:34.177Z",
|
31
|
+
"awardable_id": 80,
|
32
|
+
"awardable_type": "Snippet"
|
33
|
+
}
|
34
|
+
]
|
@@ -0,0 +1,73 @@
|
|
1
|
+
{
|
2
|
+
"id": 102,
|
3
|
+
"project": {
|
4
|
+
"id": 2,
|
5
|
+
"name": "Gitlab Ce",
|
6
|
+
"name_with_namespace": "Gitlab Org / Gitlab Ce",
|
7
|
+
"path": "gitlab-ce",
|
8
|
+
"path_with_namespace": "gitlab-org/gitlab-ce"
|
9
|
+
},
|
10
|
+
"author": {
|
11
|
+
"name": "Administrator",
|
12
|
+
"username": "root",
|
13
|
+
"id": 1,
|
14
|
+
"state": "active",
|
15
|
+
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
16
|
+
"web_url": "https://gitlab.example.com/root"
|
17
|
+
},
|
18
|
+
"action_name": "marked",
|
19
|
+
"target_type": "MergeRequest",
|
20
|
+
"target": {
|
21
|
+
"id": 34,
|
22
|
+
"iid": 7,
|
23
|
+
"project_id": 2,
|
24
|
+
"title": "Dolores in voluptatem tenetur praesentium omnis repellendus voluptatem quaerat.",
|
25
|
+
"description": "Et ea et omnis illum cupiditate. Dolor aspernatur tenetur ducimus facilis est nihil. Quo esse cupiditate molestiae illo corrupti qui quidem dolor.",
|
26
|
+
"state": "opened",
|
27
|
+
"created_at": "2016-06-17T07:49:24.419Z",
|
28
|
+
"updated_at": "2016-06-17T07:52:43.484Z",
|
29
|
+
"target_branch": "tutorials_git_tricks",
|
30
|
+
"source_branch": "DNSBL_docs",
|
31
|
+
"upvotes": 0,
|
32
|
+
"downvotes": 0,
|
33
|
+
"author": {
|
34
|
+
"name": "Maxie Medhurst",
|
35
|
+
"username": "craig_rutherford",
|
36
|
+
"id": 12,
|
37
|
+
"state": "active",
|
38
|
+
"avatar_url": "http://www.gravatar.com/avatar/a0d477b3ea21970ce6ffcbb817b0b435?s=80&d=identicon",
|
39
|
+
"web_url": "https://gitlab.example.com/craig_rutherford"
|
40
|
+
},
|
41
|
+
"assignee": {
|
42
|
+
"name": "Administrator",
|
43
|
+
"username": "root",
|
44
|
+
"id": 1,
|
45
|
+
"state": "active",
|
46
|
+
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
47
|
+
"web_url": "https://gitlab.example.com/root"
|
48
|
+
},
|
49
|
+
"source_project_id": 2,
|
50
|
+
"target_project_id": 2,
|
51
|
+
"labels": [],
|
52
|
+
"work_in_progress": false,
|
53
|
+
"milestone": {
|
54
|
+
"id": 32,
|
55
|
+
"iid": 2,
|
56
|
+
"project_id": 2,
|
57
|
+
"title": "v1.0",
|
58
|
+
"description": "Assumenda placeat ea voluptatem voluptate qui.",
|
59
|
+
"state": "active",
|
60
|
+
"created_at": "2016-06-17T07:47:34.163Z",
|
61
|
+
"updated_at": "2016-06-17T07:47:34.163Z",
|
62
|
+
"due_date": null
|
63
|
+
},
|
64
|
+
"merge_when_pipeline_succeeds": false,
|
65
|
+
"merge_status": "cannot_be_merged",
|
66
|
+
"subscribed": true,
|
67
|
+
"user_notes_count": 7
|
68
|
+
},
|
69
|
+
"target_url": "https://gitlab.example.com/gitlab-org/gitlab-ce/merge_requests/7",
|
70
|
+
"body": "Dolores in voluptatem tenetur praesentium omnis repellendus voluptatem quaerat.",
|
71
|
+
"state": "done",
|
72
|
+
"created_at": "2016-06-17T07:52:35.225Z"
|
73
|
+
}
|