gitlab 4.4.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -2
  3. data/gitlab.gemspec +3 -1
  4. data/lib/gitlab/client.rb +1 -0
  5. data/lib/gitlab/client/merge_request_approvals.rb +110 -0
  6. data/lib/gitlab/client/projects.rb +19 -9
  7. data/lib/gitlab/error.rb +10 -3
  8. data/lib/gitlab/version.rb +1 -1
  9. metadata +5 -444
  10. data/.dockerignore +0 -6
  11. data/.rubocop.yml +0 -33
  12. data/.travis.yml +0 -13
  13. data/Dockerfile +0 -8
  14. data/docker-compose.yml +0 -19
  15. data/docker.env +0 -2
  16. data/spec/fixtures/access_request.json +0 -8
  17. data/spec/fixtures/access_requests.json +0 -18
  18. data/spec/fixtures/approved_access_request.json +0 -8
  19. data/spec/fixtures/board_list.json +0 -1
  20. data/spec/fixtures/board_lists.json +0 -1
  21. data/spec/fixtures/boards.json +0 -1
  22. data/spec/fixtures/branch.json +0 -1
  23. data/spec/fixtures/branch_delete.json +0 -3
  24. data/spec/fixtures/branches.json +0 -1
  25. data/spec/fixtures/build.json +0 -38
  26. data/spec/fixtures/build_artifacts.json +0 -0
  27. data/spec/fixtures/build_cancel.json +0 -24
  28. data/spec/fixtures/build_erase.json +0 -24
  29. data/spec/fixtures/build_retry.json +0 -24
  30. data/spec/fixtures/builds.json +0 -78
  31. data/spec/fixtures/builds_commits.json +0 -64
  32. data/spec/fixtures/compare_merge_request_diff.json +0 -31
  33. data/spec/fixtures/default_approved_access_request.json +0 -8
  34. data/spec/fixtures/deployment.json +0 -57
  35. data/spec/fixtures/deployments.json +0 -116
  36. data/spec/fixtures/empty.json +0 -0
  37. data/spec/fixtures/environment.json +0 -6
  38. data/spec/fixtures/environments.json +0 -14
  39. data/spec/fixtures/error_already_exists.json +0 -1
  40. data/spec/fixtures/error_project_not_found.json +0 -1
  41. data/spec/fixtures/get_repository_file.json +0 -1
  42. data/spec/fixtures/group.json +0 -60
  43. data/spec/fixtures/group_create.json +0 -1
  44. data/spec/fixtures/group_create_with_description.json +0 -1
  45. data/spec/fixtures/group_delete.json +0 -1
  46. data/spec/fixtures/group_edit.json +0 -14
  47. data/spec/fixtures/group_member.json +0 -1
  48. data/spec/fixtures/group_member_delete.json +0 -1
  49. data/spec/fixtures/group_member_edit.json +0 -1
  50. data/spec/fixtures/group_members.json +0 -1
  51. data/spec/fixtures/group_milestone.json +0 -1
  52. data/spec/fixtures/group_milestone_issues.json +0 -1
  53. data/spec/fixtures/group_milestone_merge_requests.json +0 -1
  54. data/spec/fixtures/group_milestones.json +0 -1
  55. data/spec/fixtures/group_projects.json +0 -44
  56. data/spec/fixtures/group_search.json +0 -2
  57. data/spec/fixtures/group_subgroups.json +0 -16
  58. data/spec/fixtures/groups.json +0 -2
  59. data/spec/fixtures/issue.json +0 -1
  60. data/spec/fixtures/issue_award_emoji.json +0 -16
  61. data/spec/fixtures/issue_award_emojis.json +0 -34
  62. data/spec/fixtures/issues.json +0 -1
  63. data/spec/fixtures/job.json +0 -43
  64. data/spec/fixtures/job_trace.json +0 -1
  65. data/spec/fixtures/jobs.json +0 -91
  66. data/spec/fixtures/key.json +0 -1
  67. data/spec/fixtures/keys.json +0 -1
  68. data/spec/fixtures/label.json +0 -1
  69. data/spec/fixtures/label_unsubscribe.json +0 -1
  70. data/spec/fixtures/labels.json +0 -1
  71. data/spec/fixtures/merge_request.json +0 -1
  72. data/spec/fixtures/merge_request_award_emoji.json +0 -16
  73. data/spec/fixtures/merge_request_award_emojis.json +0 -34
  74. data/spec/fixtures/merge_request_changes.json +0 -1
  75. data/spec/fixtures/merge_request_closes_issues.json +0 -1
  76. data/spec/fixtures/merge_request_comment.json +0 -1
  77. data/spec/fixtures/merge_request_comments.json +0 -1
  78. data/spec/fixtures/merge_request_commits.json +0 -1
  79. data/spec/fixtures/merge_request_discussion.json +0 -39
  80. data/spec/fixtures/merge_request_discussion_note.json +0 -33
  81. data/spec/fixtures/merge_request_discussions.json +0 -41
  82. data/spec/fixtures/merge_requests.json +0 -1
  83. data/spec/fixtures/milestone.json +0 -1
  84. data/spec/fixtures/milestone_issues.json +0 -1
  85. data/spec/fixtures/milestone_merge_requests.json +0 -1
  86. data/spec/fixtures/milestones.json +0 -1
  87. data/spec/fixtures/namespaces.json +0 -1
  88. data/spec/fixtures/note.json +0 -1
  89. data/spec/fixtures/note_award_emoji.json +0 -16
  90. data/spec/fixtures/note_award_emojis.json +0 -18
  91. data/spec/fixtures/notes.json +0 -1
  92. data/spec/fixtures/pipeline.json +0 -23
  93. data/spec/fixtures/pipeline_cancel.json +0 -23
  94. data/spec/fixtures/pipeline_create.json +0 -23
  95. data/spec/fixtures/pipeline_jobs.json +0 -91
  96. data/spec/fixtures/pipeline_retry.json +0 -23
  97. data/spec/fixtures/pipeline_schedule.json +0 -32
  98. data/spec/fixtures/pipeline_schedule_create.json +0 -21
  99. data/spec/fixtures/pipeline_schedule_update.json +0 -26
  100. data/spec/fixtures/pipeline_schedule_variable.json +0 -5
  101. data/spec/fixtures/pipeline_schedule_variable_update.json +0 -5
  102. data/spec/fixtures/pipeline_schedules.json +0 -22
  103. data/spec/fixtures/pipelines.json +0 -48
  104. data/spec/fixtures/project.json +0 -1
  105. data/spec/fixtures/project_commit.json +0 -13
  106. data/spec/fixtures/project_commit_comment.json +0 -1
  107. data/spec/fixtures/project_commit_comments.json +0 -1
  108. data/spec/fixtures/project_commit_create.json +0 -22
  109. data/spec/fixtures/project_commit_diff.json +0 -10
  110. data/spec/fixtures/project_commit_merge_requests.json +0 -1
  111. data/spec/fixtures/project_commit_status.json +0 -42
  112. data/spec/fixtures/project_commits.json +0 -1
  113. data/spec/fixtures/project_edit.json +0 -21
  114. data/spec/fixtures/project_events.json +0 -81
  115. data/spec/fixtures/project_for_user.json +0 -1
  116. data/spec/fixtures/project_fork.json +0 -50
  117. data/spec/fixtures/project_fork_link.json +0 -1
  118. data/spec/fixtures/project_forked_for_user.json +0 -50
  119. data/spec/fixtures/project_forks.json +0 -50
  120. data/spec/fixtures/project_hook.json +0 -1
  121. data/spec/fixtures/project_hooks.json +0 -1
  122. data/spec/fixtures/project_issues.json +0 -1
  123. data/spec/fixtures/project_key.json +0 -6
  124. data/spec/fixtures/project_keys.json +0 -6
  125. data/spec/fixtures/project_runner_enable.json +0 -7
  126. data/spec/fixtures/project_runners.json +0 -16
  127. data/spec/fixtures/project_search.json +0 -1
  128. data/spec/fixtures/project_star.json +0 -44
  129. data/spec/fixtures/project_tag_annotated.json +0 -1
  130. data/spec/fixtures/project_tag_lightweight.json +0 -1
  131. data/spec/fixtures/project_tags.json +0 -1
  132. data/spec/fixtures/project_unstar.json +0 -44
  133. data/spec/fixtures/project_update_commit_status.json +0 -20
  134. data/spec/fixtures/projects.json +0 -1
  135. data/spec/fixtures/push_rule.json +0 -1
  136. data/spec/fixtures/raw_file.json +0 -2
  137. data/spec/fixtures/release_create.json +0 -1
  138. data/spec/fixtures/release_update.json +0 -1
  139. data/spec/fixtures/repository_file.json +0 -1
  140. data/spec/fixtures/run_trigger.json +0 -1
  141. data/spec/fixtures/runner.json +0 -26
  142. data/spec/fixtures/runner_delete.json +0 -7
  143. data/spec/fixtures/runner_edit.json +0 -26
  144. data/spec/fixtures/runner_jobs.json +0 -63
  145. data/spec/fixtures/runners.json +0 -16
  146. data/spec/fixtures/runners_all.json +0 -30
  147. data/spec/fixtures/service.json +0 -1
  148. data/spec/fixtures/session.json +0 -1
  149. data/spec/fixtures/shell_history.json +0 -2
  150. data/spec/fixtures/sidekiq_compound_metrics.json +0 -36
  151. data/spec/fixtures/sidekiq_job_stats.json +0 -7
  152. data/spec/fixtures/sidekiq_process_metrics.json +0 -25
  153. data/spec/fixtures/sidekiq_queue_metrics.json +0 -8
  154. data/spec/fixtures/snippet.json +0 -1
  155. data/spec/fixtures/snippet_award_emoji.json +0 -16
  156. data/spec/fixtures/snippet_award_emojis.json +0 -34
  157. data/spec/fixtures/snippet_content.json +0 -3
  158. data/spec/fixtures/snippets.json +0 -1
  159. data/spec/fixtures/system_hook.json +0 -1
  160. data/spec/fixtures/system_hooks.json +0 -1
  161. data/spec/fixtures/tag.json +0 -1
  162. data/spec/fixtures/tag_create.json +0 -1
  163. data/spec/fixtures/tag_create_with_description.json +0 -1
  164. data/spec/fixtures/tag_delete.json +0 -1
  165. data/spec/fixtures/tags.json +0 -1
  166. data/spec/fixtures/team_member.json +0 -1
  167. data/spec/fixtures/team_members.json +0 -1
  168. data/spec/fixtures/todo.json +0 -73
  169. data/spec/fixtures/todos.json +0 -148
  170. data/spec/fixtures/tree.json +0 -1
  171. data/spec/fixtures/trigger.json +0 -10
  172. data/spec/fixtures/triggers.json +0 -12
  173. data/spec/fixtures/user.json +0 -1
  174. data/spec/fixtures/user_block_unblock.json +0 -1
  175. data/spec/fixtures/user_contribution_events.json +0 -101
  176. data/spec/fixtures/user_email.json +0 -1
  177. data/spec/fixtures/user_emails.json +0 -1
  178. data/spec/fixtures/user_events.json +0 -40
  179. data/spec/fixtures/user_projects.json +0 -153
  180. data/spec/fixtures/user_search.json +0 -1
  181. data/spec/fixtures/users.json +0 -1
  182. data/spec/fixtures/variable.json +0 -4
  183. data/spec/fixtures/variables.json +0 -10
  184. data/spec/gitlab/api_spec.rb +0 -11
  185. data/spec/gitlab/cli_helpers_spec.rb +0 -56
  186. data/spec/gitlab/cli_spec.rb +0 -119
  187. data/spec/gitlab/client/access_requests_spec.rb +0 -141
  188. data/spec/gitlab/client/award_emojis_spec.rb +0 -391
  189. data/spec/gitlab/client/boards_spec.rb +0 -94
  190. data/spec/gitlab/client/branches_spec.rb +0 -118
  191. data/spec/gitlab/client/build_variables_spec.rb +0 -169
  192. data/spec/gitlab/client/builds_spec.rb +0 -148
  193. data/spec/gitlab/client/client_spec.rb +0 -11
  194. data/spec/gitlab/client/commits_spec.rb +0 -190
  195. data/spec/gitlab/client/deployments_spec.rb +0 -38
  196. data/spec/gitlab/client/environments_spec.rb +0 -132
  197. data/spec/gitlab/client/events_spec.rb +0 -48
  198. data/spec/gitlab/client/group_milestones_spec.rb +0 -98
  199. data/spec/gitlab/client/groups_spec.rb +0 -246
  200. data/spec/gitlab/client/issues_spec.rb +0 -285
  201. data/spec/gitlab/client/jobs_spec.rb +0 -135
  202. data/spec/gitlab/client/keys_spec.rb +0 -19
  203. data/spec/gitlab/client/labels_spec.rb +0 -100
  204. data/spec/gitlab/client/merge_requests_spec.rb +0 -351
  205. data/spec/gitlab/client/milestones_spec.rb +0 -98
  206. data/spec/gitlab/client/namespaces_spec.rb +0 -22
  207. data/spec/gitlab/client/notes_spec.rb +0 -333
  208. data/spec/gitlab/client/pipeline_schedules_spec.rb +0 -158
  209. data/spec/gitlab/client/pipeline_triggers_spec.rb +0 -157
  210. data/spec/gitlab/client/pipelines_spec.rb +0 -95
  211. data/spec/gitlab/client/projects_spec.rb +0 -630
  212. data/spec/gitlab/client/repositories_spec.rb +0 -94
  213. data/spec/gitlab/client/repository_files_spec.rb +0 -95
  214. data/spec/gitlab/client/runners_spec.rb +0 -193
  215. data/spec/gitlab/client/services_spec.rb +0 -55
  216. data/spec/gitlab/client/sidekiq_spec.rb +0 -64
  217. data/spec/gitlab/client/snippets_spec.rb +0 -100
  218. data/spec/gitlab/client/system_hooks_spec.rb +0 -69
  219. data/spec/gitlab/client/tags_spec.rb +0 -152
  220. data/spec/gitlab/client/todos_spec.rb +0 -45
  221. data/spec/gitlab/client/users_spec.rb +0 -418
  222. data/spec/gitlab/error_spec.rb +0 -72
  223. data/spec/gitlab/file_response_spec.rb +0 -33
  224. data/spec/gitlab/help_spec.rb +0 -46
  225. data/spec/gitlab/objectified_hash_spec.rb +0 -48
  226. data/spec/gitlab/page_links_spec.rb +0 -16
  227. data/spec/gitlab/paginated_response_spec.rb +0 -60
  228. data/spec/gitlab/request_spec.rb +0 -73
  229. data/spec/gitlab/shell_history_spec.rb +0 -53
  230. data/spec/gitlab/shell_spec.rb +0 -80
  231. data/spec/gitlab_spec.rb +0 -96
  232. data/spec/spec_helper.rb +0 -39
@@ -1,246 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- describe ".groups" do
5
- before do
6
- stub_get("/groups", "groups")
7
- stub_get("/groups/3", "group")
8
- @group = Gitlab.group(3)
9
- @groups = Gitlab.groups
10
- end
11
-
12
- it "gets the correct resource" do
13
- expect(a_get("/groups")).to have_been_made
14
- expect(a_get("/groups/3")).to have_been_made
15
- end
16
-
17
- it "returns a paginated response of groups" do
18
- expect(@groups).to be_a Gitlab::PaginatedResponse
19
- expect(@groups.first.path).to eq("threegroup")
20
- end
21
- end
22
-
23
- describe ".create_group" do
24
- context "without description" do
25
- before do
26
- stub_post("/groups", "group_create")
27
- @group = Gitlab.create_group('GitLab-Group', 'gitlab-path')
28
- end
29
-
30
- it "gets the correct resource" do
31
- expect(a_post("/groups").
32
- with(body: { path: 'gitlab-path', name: 'GitLab-Group' })).to have_been_made
33
- end
34
-
35
- it "returns information about a created group" do
36
- expect(@group.name).to eq("Gitlab-Group")
37
- expect(@group.path).to eq("gitlab-group")
38
- end
39
- end
40
-
41
- context "with description" do
42
- before do
43
- stub_post("/groups", "group_create_with_description")
44
- @group = Gitlab.create_group('GitLab-Group', 'gitlab-path', description: 'gitlab group description')
45
- end
46
-
47
- it "gets the correct resource" do
48
- expect(a_post("/groups").
49
- with(body: { path: 'gitlab-path', name: 'GitLab-Group',
50
- description: 'gitlab group description' })).to have_been_made
51
- end
52
-
53
- it "returns information about a created group" do
54
- expect(@group.name).to eq("Gitlab-Group")
55
- expect(@group.path).to eq("gitlab-group")
56
- expect(@group.description).to eq("gitlab group description")
57
- end
58
- end
59
- end
60
-
61
- describe ".delete_group" do
62
- before do
63
- stub_delete("/groups/42", "group_delete")
64
- @group = Gitlab.delete_group(42)
65
- end
66
-
67
- it "gets the correct resource" do
68
- expect(a_delete("/groups/42")).to have_been_made
69
- end
70
-
71
- it "returns information about a deleted group" do
72
- expect(@group.name).to eq("Gitlab-Group")
73
- expect(@group.path).to eq("gitlab-group")
74
- end
75
- end
76
-
77
- describe ".transfer_project_to_group" do
78
- before do
79
- stub_post("/projects", "project")
80
- @project = Gitlab.create_project('Gitlab')
81
- stub_post("/groups", "group_create")
82
- @group = Gitlab.create_group('GitLab-Group', 'gitlab-path')
83
-
84
- stub_post("/groups/#{@group.id}/projects/#{@project.id}", "group_create")
85
- @group_transfer = Gitlab.transfer_project_to_group(@group.id, @project.id)
86
- end
87
-
88
- it "posts to the correct resource" do
89
- expect(a_post("/groups/#{@group.id}/projects/#{@project.id}").with(body: { id: @group.id.to_s, project_id: @project.id.to_s })).to have_been_made
90
- end
91
-
92
- it "returns information about the group" do
93
- expect(@group_transfer.name).to eq(@group.name)
94
- expect(@group_transfer.path).to eq(@group.path)
95
- expect(@group_transfer.id).to eq(@group.id)
96
- end
97
- end
98
-
99
- describe ".group_members" do
100
- before do
101
- stub_get("/groups/3/members", "group_members")
102
- @members = Gitlab.group_members(3)
103
- end
104
-
105
- it "gets the correct resource" do
106
- expect(a_get("/groups/3/members")).to have_been_made
107
- end
108
-
109
- it "returns information about a group's members" do
110
- expect(@members).to be_a Gitlab::PaginatedResponse
111
- expect(@members.size).to eq(2)
112
- expect(@members[1].name).to eq("John Smith")
113
- end
114
- end
115
-
116
- describe ".group_member" do
117
- before do
118
- stub_get("/groups/3/members/2", "group_member")
119
- @member = Gitlab.group_member(3, 2)
120
- end
121
-
122
- it "gets the correct resource" do
123
- expect(a_get("/groups/3/members/2")).to have_been_made
124
- end
125
-
126
- it "returns information about a group member" do
127
- expect(@member).to be_a Gitlab::ObjectifiedHash
128
- expect(@member.access_level).to eq(10)
129
- expect(@member.name).to eq("John Smith")
130
- end
131
- end
132
-
133
- describe ".add_group_member" do
134
- before do
135
- stub_post("/groups/3/members", "group_member")
136
- @member = Gitlab.add_group_member(3, 1, 40)
137
- end
138
-
139
- it "gets the correct resource" do
140
- expect(a_post("/groups/3/members").
141
- with(body: { user_id: '1', access_level: '40' })).to have_been_made
142
- end
143
-
144
- it "returns information about the added member" do
145
- expect(@member.name).to eq("John Smith")
146
- end
147
- end
148
-
149
- describe ".edit_group_member" do
150
- before do
151
- stub_put("/groups/3/members/1", "group_member_edit")
152
- @member = Gitlab.edit_group_member(3, 1, 50)
153
- end
154
-
155
- it "gets the correct resource" do
156
- expect(a_put("/groups/3/members/1")
157
- .with(body: { access_level: '50'})).to have_been_made
158
- end
159
-
160
- it "returns information about the edited member" do
161
- expect(@member.access_level).to eq(50)
162
- end
163
- end
164
-
165
- describe ".remove_group_member" do
166
- before do
167
- stub_delete("/groups/3/members/1", "group_member_delete")
168
- @group = Gitlab.remove_group_member(3, 1)
169
- end
170
-
171
- it "gets the correct resource" do
172
- expect(a_delete("/groups/3/members/1")).to have_been_made
173
- end
174
-
175
- it "returns information about the group the member was removed from" do
176
- expect(@group.group_id).to eq(3)
177
- end
178
- end
179
-
180
- describe ".group_projects" do
181
- before do
182
- stub_get("/groups/4/projects", "group_projects")
183
- @projects = Gitlab.group_projects(4)
184
- end
185
-
186
- it "gets the list of projects" do
187
- expect(a_get("/groups/4/projects")).to have_been_made
188
- end
189
-
190
- it "returns a list of of projects under a group" do
191
- expect(@projects).to be_a Gitlab::PaginatedResponse
192
- expect(@projects.size).to eq(1)
193
- expect(@projects[0].name).to eq("Diaspora Client")
194
- end
195
- end
196
-
197
- describe ".group_search" do
198
- before do
199
- stub_get("/groups?search=Group", "group_search")
200
- @groups = Gitlab.group_search('Group')
201
- end
202
-
203
- it "gets the correct resource" do
204
- expect(a_get("/groups?search=Group")).to have_been_made
205
- end
206
-
207
- it "returns an array of groups found" do
208
- expect(@groups.first.id).to eq(5)
209
- expect(@groups.last.id).to eq(8)
210
- end
211
- end
212
-
213
- describe ".group_subgroups" do
214
- before do
215
- stub_get("/groups/4/subgroups", "group_subgroups")
216
- @subgroups = Gitlab.group_subgroups(4)
217
- end
218
-
219
- it "gets the list of subroups" do
220
- expect(a_get("/groups/4/subgroups")).to have_been_made
221
- end
222
-
223
- it "returns an array of subgroups under a group" do
224
- expect(@subgroups).to be_a Gitlab::PaginatedResponse
225
- expect(@subgroups.size).to eq(1)
226
- expect(@subgroups[0].name).to eq("Foobar Group")
227
- end
228
- end
229
-
230
- describe ".edit_group" do
231
- context "using group ID" do
232
- before do
233
- stub_put("/groups/1", "group_edit").with(body: { description: "An interesting group" })
234
- @edited_project = Gitlab.edit_group(1, description: "An interesting group")
235
- end
236
-
237
- it "gets the correct resource" do
238
- expect(a_put("/groups/1").with(body: { description: "An interesting group" })).to have_been_made
239
- end
240
-
241
- it "returns information about an edited group" do
242
- expect(@edited_project.description).to eq("An interesting group")
243
- end
244
- end
245
- end
246
- end
@@ -1,285 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- describe ".issues" do
5
- context "with project ID passed" do
6
- before do
7
- stub_get("/projects/3/issues", "project_issues")
8
- @issues = Gitlab.issues(3)
9
- end
10
-
11
- it "gets the correct resource" do
12
- expect(a_get("/projects/3/issues")).to have_been_made
13
- end
14
-
15
- it "returns a paginated response of project's issues" do
16
- expect(@issues).to be_a Gitlab::PaginatedResponse
17
- expect(@issues.first.project_id).to eq(3)
18
- end
19
- end
20
-
21
- context 'with literal project ID passed' do
22
- before do
23
- stub_get("/projects/gitlab-org%2Fgitlab-ce/issues", "project_issues")
24
- @issues = Gitlab.issues('gitlab-org/gitlab-ce')
25
- end
26
-
27
- it "gets the correct resource" do
28
- expect(a_get("/projects/gitlab-org%2Fgitlab-ce/issues")).to have_been_made
29
- end
30
-
31
- it "returns a paginated response of project's issues" do
32
- expect(@issues).to be_a Gitlab::PaginatedResponse
33
- expect(@issues.first.project_id).to eq(3)
34
- end
35
- end
36
-
37
- context "without project ID passed" do
38
- before do
39
- stub_get("/issues", "issues")
40
- @issues = Gitlab.issues
41
- end
42
-
43
- it "gets the correct resource" do
44
- expect(a_get("/issues")).to have_been_made
45
- end
46
-
47
- it "returns a paginated response of user's issues" do
48
- expect(@issues).to be_a Gitlab::PaginatedResponse
49
- expect(@issues.first.closed).to be_falsey
50
- expect(@issues.first.author.name).to eq("John Smith")
51
- end
52
- end
53
- end
54
-
55
- describe ".issue" do
56
- before do
57
- stub_get("/projects/3/issues/33", "issue")
58
- @issue = Gitlab.issue(3, 33)
59
- end
60
-
61
- it "gets the correct resource" do
62
- expect(a_get("/projects/3/issues/33")).to have_been_made
63
- end
64
-
65
- it "returns information about an issue" do
66
- expect(@issue.project_id).to eq(3)
67
- expect(@issue.assignee.name).to eq("Jack Smith")
68
- end
69
- end
70
-
71
- describe ".create_issue" do
72
- before do
73
- stub_post("/projects/3/issues", "issue")
74
- @issue = Gitlab.create_issue(3, 'title')
75
- end
76
-
77
- it "gets the correct resource" do
78
- expect(a_post("/projects/3/issues").
79
- with(body: { title: 'title' })).to have_been_made
80
- end
81
-
82
- it "returns information about a created issue" do
83
- expect(@issue.project_id).to eq(3)
84
- expect(@issue.assignee.name).to eq("Jack Smith")
85
- end
86
- end
87
-
88
- describe ".edit_issue" do
89
- before do
90
- stub_put("/projects/3/issues/33", "issue")
91
- @issue = Gitlab.edit_issue(3, 33, title: 'title')
92
- end
93
-
94
- it "gets the correct resource" do
95
- expect(a_put("/projects/3/issues/33").
96
- with(body: { title: 'title' })).to have_been_made
97
- end
98
-
99
- it "returns information about an edited issue" do
100
- expect(@issue.project_id).to eq(3)
101
- expect(@issue.assignee.name).to eq("Jack Smith")
102
- end
103
- end
104
-
105
- describe ".close_issue" do
106
- before do
107
- stub_put("/projects/3/issues/33", "issue")
108
- @issue = Gitlab.close_issue(3, 33)
109
- end
110
-
111
- it "gets the correct resource" do
112
- expect(a_put("/projects/3/issues/33").
113
- with(body: { state_event: 'close' })).to have_been_made
114
- end
115
-
116
- it "returns information about an closed issue" do
117
- expect(@issue.project_id).to eq(3)
118
- expect(@issue.assignee.name).to eq("Jack Smith")
119
- end
120
- end
121
-
122
- describe ".reopen_issue" do
123
- before do
124
- stub_put("/projects/3/issues/33", "issue")
125
- @issue = Gitlab.reopen_issue(3, 33)
126
- end
127
-
128
- it "gets the correct resource" do
129
- expect(a_put("/projects/3/issues/33").
130
- with(body: { state_event: 'reopen' })).to have_been_made
131
- end
132
-
133
- it "returns information about an reopened issue" do
134
- expect(@issue.project_id).to eq(3)
135
- expect(@issue.assignee.name).to eq("Jack Smith")
136
- end
137
- end
138
-
139
- describe ".subscribe_to_issue" do
140
- before do
141
- stub_post("/projects/3/issues/33/subscribe", "issue")
142
- @issue = Gitlab.subscribe_to_issue(3, 33)
143
- end
144
-
145
- it "gets the correct resource" do
146
- expect(a_post("/projects/3/issues/33/subscribe")).to have_been_made
147
- end
148
-
149
- it "returns information about the subscribed issue" do
150
- expect(@issue.project_id).to eq(3)
151
- expect(@issue.assignee.name).to eq("Jack Smith")
152
- end
153
- end
154
-
155
- describe ".unsubscribe_from_issue" do
156
- before do
157
- stub_post("/projects/3/issues/33/unsubscribe", "issue")
158
- @issue = Gitlab.unsubscribe_from_issue(3, 33)
159
- end
160
-
161
- it "gets the correct resource" do
162
- expect(a_post("/projects/3/issues/33/unsubscribe")).to have_been_made
163
- end
164
-
165
- it "returns information about the unsubscribed issue" do
166
- expect(@issue.project_id).to eq(3)
167
- expect(@issue.assignee.name).to eq("Jack Smith")
168
- end
169
- end
170
-
171
- describe ".delete_issue" do
172
- before do
173
- stub_delete("/projects/3/issues/33", "issue")
174
- @issue = Gitlab.delete_issue(3, 33)
175
- end
176
-
177
- it "gets the correct resource" do
178
- expect(a_delete("/projects/3/issues/33")).to have_been_made
179
- end
180
-
181
- it "returns information about a deleted issue" do
182
- expect(@issue.project_id).to eq(3)
183
- expect(@issue.id).to eq(33)
184
- end
185
- end
186
-
187
- describe ".move_issue" do
188
- before do
189
- stub_post("/projects/3/issues/33/move", "issue")
190
- @issue = Gitlab.move_issue(3, 33, to_project_id: '4')
191
- end
192
-
193
- it "gets the correct resource" do
194
- expect(a_post("/projects/3/issues/33/move").
195
- with(body: { to_project_id: '4' })).to have_been_made
196
- end
197
-
198
- it "returns information about the moved issue" do
199
- expect(@issue.project_id).to eq(3)
200
- expect(@issue.assignee.name).to eq("Jack Smith")
201
- end
202
- end
203
-
204
- describe ".estimate_time_of_issue" do
205
- before do
206
- stub_post("/projects/3/issues/33/time_estimate", "issue")
207
- @issue = Gitlab.estimate_time_of_issue(3, 33, '3h30m')
208
- end
209
-
210
- it "gets the correct resource" do
211
- expect(a_post("/projects/3/issues/33/time_estimate").
212
- with(body: { duration: '3h30m' })).to have_been_made
213
- end
214
-
215
- it "returns information about the estimated issue" do
216
- expect(@issue.project_id).to eq(3)
217
- expect(@issue.assignee.name).to eq("Jack Smith")
218
- end
219
- end
220
-
221
- describe ".reset_time_estimate_of_issue" do
222
- before do
223
- stub_post("/projects/3/issues/33/reset_time_estimate", "issue")
224
- @issue = Gitlab.reset_time_estimate_of_issue(3, 33)
225
- end
226
-
227
- it "gets the correct resource" do
228
- expect(a_post("/projects/3/issues/33/reset_time_estimate")).to have_been_made
229
- end
230
-
231
- it "returns information about the estimated issue" do
232
- expect(@issue.project_id).to eq(3)
233
- expect(@issue.assignee.name).to eq("Jack Smith")
234
- end
235
- end
236
-
237
- describe ".add_time_spent_on_issue" do
238
- before do
239
- stub_post("/projects/3/issues/33/add_spent_time", "issue")
240
- @issue = Gitlab.add_time_spent_on_issue(3, 33, '3h30m')
241
- end
242
-
243
- it "gets the correct resource" do
244
- expect(a_post("/projects/3/issues/33/add_spent_time").
245
- with(body: { duration: '3h30m' })).to have_been_made
246
- end
247
-
248
- it "returns information about the estimated issue" do
249
- expect(@issue.project_id).to eq(3)
250
- expect(@issue.assignee.name).to eq("Jack Smith")
251
- end
252
- end
253
-
254
- describe ".reset_time_spent_on_issue" do
255
- before do
256
- stub_post("/projects/3/issues/33/reset_spent_time", "issue")
257
- @issue = Gitlab.reset_time_spent_on_issue(3, 33)
258
- end
259
-
260
- it "gets the correct resource" do
261
- expect(a_post("/projects/3/issues/33/reset_spent_time")).to have_been_made
262
- end
263
-
264
- it "returns information about the estimated issue" do
265
- expect(@issue.project_id).to eq(3)
266
- expect(@issue.assignee.name).to eq("Jack Smith")
267
- end
268
- end
269
-
270
- describe ".time_stats_for_issue" do
271
- before do
272
- stub_get("/projects/3/issues/33/time_stats", "issue")
273
- @issue = Gitlab.time_stats_for_issue(3, 33)
274
- end
275
-
276
- it "gets the correct resource" do
277
- expect(a_get("/projects/3/issues/33/time_stats")).to have_been_made
278
- end
279
-
280
- it "returns information about the issue" do
281
- expect(@issue.project_id).to eq(3)
282
- expect(@issue.assignee.name).to eq("Jack Smith")
283
- end
284
- end
285
- end