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,158 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- describe ".pipeline_schedules" do
5
- before do
6
- stub_get("/projects/3/pipeline_schedules", "pipeline_schedules")
7
- @pipeline_schedules = Gitlab.pipeline_schedules(3)
8
- end
9
-
10
- it "gets the correct resource" do
11
- expect(a_get("/projects/3/pipeline_schedules")).to have_been_made
12
- end
13
-
14
- it "returns a response of project's pipeline schedules" do
15
- expect(@pipeline_schedules).to be_a Gitlab::PaginatedResponse
16
- end
17
- end
18
-
19
- describe ".pipeline_schedule" do
20
- before do
21
- stub_get("/projects/3/pipeline_schedules/5", "pipeline_schedule")
22
- @pipeline_schedule = Gitlab.pipeline_schedule(3, 5)
23
- end
24
-
25
- it "gets the correct resource" do
26
- expect(a_get("/projects/3/pipeline_schedules/5")).to have_been_made
27
- end
28
-
29
- it "returns a response of project's pipeline schedules" do
30
- expect(@pipeline_schedule).to be_a Gitlab::ObjectifiedHash
31
- end
32
- end
33
-
34
- describe ".create_pipeline_schedule" do
35
- before do
36
- stub_post("/projects/3/pipeline_schedules", "pipeline_schedule_create")
37
- @pipeline_schedule_create = Gitlab.create_pipeline_schedule(3)
38
- end
39
-
40
- it "gets the correct resource" do
41
- expect(a_post("/projects/3/pipeline_schedules")).to have_been_made
42
- end
43
-
44
- it "returns a single pipeline schedule" do
45
- expect(@pipeline_schedule_create).to be_a Gitlab::ObjectifiedHash
46
- end
47
-
48
- it "returns information about a pipeline schedule" do
49
- expect(@pipeline_schedule_create.owner.name).to eq("Administrator")
50
- end
51
- end
52
-
53
- describe ".edit_pipeline_schedule" do
54
- before do
55
- stub_put("/projects/3/pipeline_schedules/13", "pipeline_schedule_update")
56
- @pipeline_schedule_update = Gitlab.edit_pipeline_schedule(3, 13)
57
- end
58
-
59
- it "gets the correct resource" do
60
- expect(a_put("/projects/3/pipeline_schedules/13")).to have_been_made
61
- end
62
-
63
- it "returns a single pipeline schedule" do
64
- expect(@pipeline_schedule_update).to be_a Gitlab::ObjectifiedHash
65
- end
66
-
67
- it "returns information about a pipeline schedule" do
68
- expect(@pipeline_schedule_update.owner.name).to eq("Administrator")
69
- end
70
- end
71
-
72
- describe ".pipeline_schedule_take_ownership" do
73
- before do
74
- stub_post("/projects/3/pipeline_schedules/13/take_ownership", "pipeline_schedule")
75
- @pipeline_schedule = Gitlab.pipeline_schedule_take_ownership(3, 13)
76
- end
77
-
78
- it "gets the correct resource" do
79
- expect(a_post("/projects/3/pipeline_schedules/13/take_ownership")).to have_been_made
80
- end
81
-
82
- it "returns information about the pipeline schedule" do
83
- expect(@pipeline_schedule.created_at).to eq("2017-05-19T13:31:08.849Z")
84
- expect(@pipeline_schedule.description).to eq("Test schedule pipeline")
85
- end
86
- end
87
-
88
- describe ".delete_pipeline_schedule" do
89
- before do
90
- stub_delete("/projects/3/pipeline_schedules/13", "pipeline_schedule")
91
- @pipeline_schedule = Gitlab.delete_pipeline_schedule(3,13)
92
- end
93
-
94
- it "gets the correct resource" do
95
- expect(a_delete("/projects/3/pipeline_schedules/13")).to have_been_made
96
- end
97
-
98
- it "returns a single pipeline" do
99
- expect(@pipeline_schedule).to be_a Gitlab::ObjectifiedHash
100
- end
101
-
102
- it "returns information about the deleted pipeline" do
103
- # expect(@pipeline_schedule.id).to eq(13)
104
- end
105
- end
106
-
107
- describe ".create_pipeline_schedule_variable" do
108
- before do
109
- stub_post("/projects/3/pipeline_schedules/13/variables?key=NEW%20VARIABLE&value=new%20value", "pipeline_schedule_variable")
110
- @pipeline_schedule_variable = Gitlab.create_pipeline_schedule_variable(3, 13, {
111
- key: "NEW VARIABLE",
112
- value: "new value"
113
- })
114
- end
115
-
116
- it "gets the correct resource" do
117
- expect(a_post("/projects/3/pipeline_schedules/13/variables?key=NEW%20VARIABLE&value=new%20value")).to have_been_made
118
- end
119
-
120
- it "returns a single variable" do
121
- expect(@pipeline_schedule_variable).to be_a Gitlab::ObjectifiedHash
122
- end
123
-
124
- it "returns the created variable" do
125
- expect(@pipeline_schedule_variable.value).to eq("new value")
126
- end
127
- end
128
-
129
- describe ".edit_pipeline_schedule_variable" do
130
- before do
131
- stub_put("/projects/3/pipeline_schedules/13/variables/NEW%20VARIABLE?value=update%20value", "pipeline_schedule_variable_update")
132
- @pipeline_schedule_variable = Gitlab.edit_pipeline_schedule_variable(3, 13, "NEW VARIABLE", { value: "update value" })
133
- end
134
-
135
- it "returns a single variable" do
136
- expect(@pipeline_schedule_variable).to be_a Gitlab::ObjectifiedHash
137
- end
138
-
139
- it "has the updated value" do
140
- expect(@pipeline_schedule_variable.value).to eq("update value")
141
- end
142
- end
143
-
144
- describe ".delete_pipeline_schedule_variable" do
145
- before do
146
- stub_delete("/projects/3/pipeline_schedules/13/variables/NEW%20VARIABLE", "pipeline_schedule_variable")
147
- @pipeline_schedule_variable = Gitlab.delete_pipeline_schedule_variable(3, 13, "NEW VARIABLE")
148
- end
149
-
150
- it "returns a single variable" do
151
- expect(@pipeline_schedule_variable).to be_a Gitlab::ObjectifiedHash
152
- end
153
-
154
- it "has the value of the deleted variable" do
155
- expect(@pipeline_schedule_variable.value).to eq("new value")
156
- end
157
- end
158
- end
@@ -1,157 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- it { is_expected.to respond_to :delete_trigger }
5
-
6
- describe ".triggers" do
7
- before do
8
- stub_get("/projects/3/triggers", "triggers")
9
- @triggers = Gitlab.triggers(3)
10
- end
11
-
12
- it "gets the correct resource" do
13
- expect(a_get("/projects/3/triggers")).to have_been_made
14
- end
15
-
16
- it "returns an array of project's triggers" do
17
- expect(@triggers).to be_a Gitlab::PaginatedResponse
18
- expect(@triggers.first.token).to eq("6d056f63e50fe6f8c5f8f4aa10edb7")
19
- end
20
- end
21
-
22
- describe ".trigger" do
23
- before do
24
- stub_get("/projects/3/triggers/10", "trigger")
25
- @trigger = Gitlab.trigger(3, 10)
26
- end
27
-
28
- it "gets the correct resource" do
29
- expect(a_get("/projects/3/triggers/10")).to have_been_made
30
- end
31
-
32
- it "returns information about a trigger" do
33
- expect(@trigger.created_at).to eq("2016-01-07T09:53:58.235Z")
34
- expect(@trigger.token).to eq("6d056f63e50fe6f8c5f8f4aa10edb7")
35
- end
36
- end
37
-
38
- describe ".create_trigger" do
39
- before do
40
- stub_post("/projects/3/triggers", "trigger")
41
- @trigger = Gitlab.create_trigger(3, "my description")
42
- end
43
-
44
- it "gets the correct resource" do
45
- expect(a_post("/projects/3/triggers").
46
- with(body: { description: "my description" })).to have_been_made
47
- end
48
-
49
- it "returns information about a new trigger" do
50
- expect(@trigger.created_at).to eq("2016-01-07T09:53:58.235Z")
51
- expect(@trigger.token).to eq("6d056f63e50fe6f8c5f8f4aa10edb7")
52
- end
53
- end
54
-
55
- describe ".update_trigger" do
56
- before do
57
- stub_put("/projects/3/triggers/1", "trigger")
58
- @trigger = Gitlab.update_trigger(3, 1, description: "my description")
59
- end
60
-
61
- it "gets the correct resource" do
62
- expect(a_put("/projects/3/triggers/1").
63
- with(body: { description: "my description" })).to have_been_made
64
- end
65
-
66
- it "returns information about the trigger" do
67
- expect(@trigger.created_at).to eq("2016-01-07T09:53:58.235Z")
68
- expect(@trigger.token).to eq("6d056f63e50fe6f8c5f8f4aa10edb7")
69
- end
70
- end
71
-
72
- describe ".trigger_take_ownership" do
73
- before do
74
- stub_post("/projects/3/triggers/1/take_ownership", "trigger")
75
- @trigger = Gitlab.trigger_take_ownership(3, 1)
76
- end
77
-
78
- it "gets the correct resource" do
79
- expect(a_post("/projects/3/triggers/1/take_ownership")).to have_been_made
80
- end
81
-
82
- it "returns information about the trigger" do
83
- expect(@trigger.created_at).to eq("2016-01-07T09:53:58.235Z")
84
- expect(@trigger.token).to eq("6d056f63e50fe6f8c5f8f4aa10edb7")
85
- end
86
- end
87
-
88
- describe ".remove_trigger" do
89
- before do
90
- stub_delete("/projects/3/triggers/10", "empty")
91
- @trigger = Gitlab.remove_trigger(3, 10)
92
- end
93
-
94
- it "gets the correct resource" do
95
- expect(a_delete("/projects/3/triggers/10")).to have_been_made
96
- end
97
- end
98
-
99
- describe ".run_trigger" do
100
- before do
101
- stub_request(:post, "#{Gitlab.endpoint}/projects/3/trigger/pipeline").
102
- to_return(body: load_fixture("run_trigger"), status: 200)
103
- end
104
-
105
- context "when private_token is not set" do
106
- before do
107
- Gitlab.private_token = nil
108
- end
109
-
110
- it "does not raise Error::MissingCredentials" do
111
- expect { Gitlab.run_trigger(3, "7b9148c158980bbd9bcea92c17522d", "master", {a: 10}) }.to_not raise_error
112
- end
113
-
114
- after do
115
- Gitlab.private_token = 'secret'
116
- end
117
- end
118
-
119
- context "without variables" do
120
- before do
121
- @trigger = Gitlab.run_trigger(3, "7b9148c158980bbd9bcea92c17522d", "master")
122
- end
123
-
124
- it "gets the correct resource" do
125
- expect(a_request(:post, "#{Gitlab.endpoint}/projects/3/trigger/pipeline").
126
- with(body: {
127
- token: "7b9148c158980bbd9bcea92c17522d",
128
- ref: "master"
129
- })).to have_been_made
130
- end
131
-
132
- it "returns information about the triggered build" do
133
- expect(@trigger.id).to eq(8)
134
- end
135
- end
136
-
137
- context "with variables" do
138
- before do
139
- @trigger = Gitlab.run_trigger(3, "7b9148c158980bbd9bcea92c17522d", "master", {a: 10})
140
- end
141
-
142
- it "gets the correct resource" do
143
- expect(a_request(:post, "#{Gitlab.endpoint}/projects/3/trigger/pipeline").
144
- with(body: {
145
- token: "7b9148c158980bbd9bcea92c17522d",
146
- ref: "master",
147
- variables: {a: "10"}
148
- })).to have_been_made
149
- end
150
-
151
- it "returns information about the triggered build" do
152
- expect(@trigger.id).to eq(8)
153
- expect(@trigger.variables.a).to eq("10")
154
- end
155
- end
156
- end
157
- end
@@ -1,95 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- describe ".pipelines" do
5
- before do
6
- stub_get("/projects/3/pipelines", "pipelines")
7
- @pipelines = Gitlab.pipelines(3)
8
- end
9
-
10
- it "gets the correct resource" do
11
- expect(a_get("/projects/3/pipelines")).to have_been_made
12
- end
13
-
14
- it "returns a paginated response of project's pipelines" do
15
- expect(@pipelines).to be_a Gitlab::PaginatedResponse
16
- end
17
- end
18
-
19
- describe ".pipeline" do
20
- before do
21
- stub_get("/projects/3/pipelines/46", "pipeline")
22
- @pipeline = Gitlab.pipeline(3, 46)
23
- end
24
-
25
- it "gets the correct resource" do
26
- expect(a_get("/projects/3/pipelines/46")).to have_been_made
27
- end
28
-
29
- it "returns a single pipeline" do
30
- expect(@pipeline).to be_a Gitlab::ObjectifiedHash
31
- end
32
-
33
- it "returns information about a pipeline" do
34
- expect(@pipeline.id).to eq(46)
35
- expect(@pipeline.user.name).to eq("Administrator")
36
- end
37
- end
38
-
39
- describe ".create_pipeline" do
40
- before do
41
- stub_post("/projects/3/pipeline?ref=master", "pipeline_create")
42
- @pipeline_create = Gitlab.create_pipeline(3, 'master')
43
- end
44
-
45
- it "gets the correct resource" do
46
- expect(a_post("/projects/3/pipeline?ref=master")).to have_been_made
47
- end
48
-
49
- it "returns a single pipeline" do
50
- expect(@pipeline_create).to be_a Gitlab::ObjectifiedHash
51
- end
52
-
53
- it "returns information about a pipeline" do
54
- expect(@pipeline_create.user.name).to eq("Administrator")
55
- end
56
- end
57
-
58
- describe ".cancel_pipeline" do
59
- before do
60
- stub_post("/projects/3/pipelines/46/cancel", "pipeline_cancel")
61
- @pipeline_cancel = Gitlab.cancel_pipeline(3, 46)
62
- end
63
-
64
- it "gets the correct resource" do
65
- expect(a_post("/projects/3/pipelines/46/cancel")).to have_been_made
66
- end
67
-
68
- it "returns a single pipeline" do
69
- expect(@pipeline_cancel).to be_a Gitlab::ObjectifiedHash
70
- end
71
-
72
- it "returns information about a pipeline" do
73
- expect(@pipeline_cancel.user.name).to eq("Administrator")
74
- end
75
- end
76
-
77
- describe ".retry_pipeline" do
78
- before do
79
- stub_post("/projects/3/pipelines/46/retry", "pipeline_retry")
80
- @pipeline_retry = Gitlab.retry_pipeline(3, 46)
81
- end
82
-
83
- it "gets the correct resource" do
84
- expect(a_post("/projects/3/pipelines/46/retry")).to have_been_made
85
- end
86
-
87
- it "returns a single pipeline" do
88
- expect(@pipeline_retry).to be_a Gitlab::ObjectifiedHash
89
- end
90
-
91
- it "returns information about a pipeline" do
92
- expect(@pipeline_retry.user.name).to eq("Administrator")
93
- end
94
- end
95
- end
@@ -1,630 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- it { is_expected.to respond_to :search_projects }
5
-
6
- describe ".projects" do
7
- before do
8
- stub_get("/projects", "projects")
9
- @projects = Gitlab.projects
10
- end
11
-
12
- it "gets the correct resource" do
13
- expect(a_get("/projects")).to have_been_made
14
- end
15
-
16
- it "returns a paginated response of projects" do
17
- expect(@projects).to be_a Gitlab::PaginatedResponse
18
- expect(@projects.first.name).to eq("Brute")
19
- expect(@projects.first.owner.name).to eq("John Smith")
20
- end
21
- end
22
-
23
- describe ".project_search" do
24
- before do
25
- stub_get("/projects?search=Gitlab", "project_search")
26
- @project_search = Gitlab.project_search("Gitlab")
27
- end
28
-
29
- it "gets the correct resource" do
30
- expect(a_get("/projects?search=Gitlab")).to have_been_made
31
- end
32
-
33
- it "returns a paginated response of projects found" do
34
- expect(@project_search).to be_a Gitlab::PaginatedResponse
35
- expect(@project_search.first.name).to eq("Gitlab")
36
- expect(@project_search.first.owner.name).to eq("John Smith")
37
- end
38
- end
39
-
40
- describe ".project" do
41
- before do
42
- stub_get("/projects/3", "project")
43
- @project = Gitlab.project(3)
44
- end
45
-
46
- it "gets the correct resource" do
47
- expect(a_get("/projects/3")).to have_been_made
48
- end
49
-
50
- it "returns information about a project" do
51
- expect(@project.name).to eq("Gitlab")
52
- expect(@project.owner.name).to eq("John Smith")
53
- end
54
- end
55
-
56
- describe ".create_project" do
57
- before do
58
- stub_post("/projects", "project")
59
- @project = Gitlab.create_project('Gitlab')
60
- end
61
-
62
- it "gets the correct resource" do
63
- expect(a_post("/projects")).to have_been_made
64
- end
65
-
66
- it "returns information about a created project" do
67
- expect(@project.name).to eq("Gitlab")
68
- expect(@project.owner.name).to eq("John Smith")
69
- end
70
- end
71
-
72
- describe ".create_project for user" do
73
- before do
74
- stub_post("/users", "user")
75
- @owner = Gitlab.create_user("john@example.com", "pass", name: 'John Owner')
76
- stub_post("/projects/user/#{@owner.id}", "project_for_user")
77
- @project = Gitlab.create_project('Brute', user_id: @owner.id)
78
- end
79
-
80
- it "returns information about a created project" do
81
- expect(@project.name).to eq("Brute")
82
- expect(@project.owner.name).to eq("John Owner")
83
- end
84
- end
85
-
86
- describe ".delete_project" do
87
- before do
88
- stub_delete("/projects/Gitlab", "project")
89
- @project = Gitlab.delete_project('Gitlab')
90
- end
91
-
92
- it "gets the correct resource" do
93
- expect(a_delete("/projects/Gitlab")).to have_been_made
94
- end
95
-
96
- it "returns information about a deleted project" do
97
- expect(@project.name).to eq("Gitlab")
98
- expect(@project.owner.name).to eq("John Smith")
99
- end
100
- end
101
-
102
- describe ".create_fork" do
103
- context "without sudo option" do
104
- before do
105
- stub_post("/projects/3/fork", "project_fork")
106
- @project = Gitlab.create_fork(3)
107
- end
108
-
109
- it "posts to the correct resource" do
110
- expect(a_post("/projects/3/fork")).to have_been_made
111
- end
112
-
113
- it "returns information about the forked project" do
114
- expect(@project.forked_from_project.id).to eq(3)
115
- expect(@project.id).to eq(20)
116
- end
117
- end
118
-
119
- context "with the sudo option" do
120
- before do
121
- stub_post("/projects/3/fork", "project_forked_for_user")
122
- @sudoed_username = 'jack.smith'
123
- @project = Gitlab.create_fork(3, sudo: @sudoed_username)
124
- end
125
-
126
- it "posts to the correct resource" do
127
- expect(a_post("/projects/3/fork")).to have_been_made
128
- end
129
-
130
- it "returns information about the forked project" do
131
- expect(@project.forked_from_project.id).to eq(3)
132
- expect(@project.id).to eq(20)
133
- expect(@project.owner.username).to eq(@sudoed_username)
134
- end
135
- end
136
- end
137
-
138
- describe ".project_forks" do
139
- before do
140
- stub_get("/projects/3/forks", "project_forks")
141
- @project_forks = Gitlab.project_forks(3)
142
- end
143
-
144
- it "gets the correct resource" do
145
- expect(a_get("/projects/3/forks")).to have_been_made
146
- end
147
-
148
- it "returns a paginated response of projects found" do
149
- expect(@project_forks).to be_a Gitlab::PaginatedResponse
150
- expect(@project_forks.first.name).to eq("gitlab")
151
- expect(@project_forks.first.owner.name).to eq("Administrator")
152
- end
153
- end
154
-
155
- describe ".team_members" do
156
- before do
157
- stub_get("/projects/3/members", "team_members")
158
- @team_members = Gitlab.team_members(3)
159
- end
160
-
161
- it "gets the correct resource" do
162
- expect(a_get("/projects/3/members")).to have_been_made
163
- end
164
-
165
- it "returns a paginated response of team members" do
166
- expect(@team_members).to be_a Gitlab::PaginatedResponse
167
- expect(@team_members.first.name).to eq("John Smith")
168
- end
169
- end
170
-
171
- describe ".team_member" do
172
- before do
173
- stub_get("/projects/3/members/1", "team_member")
174
- @team_member = Gitlab.team_member(3, 1)
175
- end
176
-
177
- it "gets the correct resource" do
178
- expect(a_get("/projects/3/members/1")).to have_been_made
179
- end
180
-
181
- it "returns information about a team member" do
182
- expect(@team_member.name).to eq("John Smith")
183
- end
184
- end
185
-
186
- describe ".add_team_member" do
187
- before do
188
- stub_post("/projects/3/members", "team_member")
189
- @team_member = Gitlab.add_team_member(3, 1, 40)
190
- end
191
-
192
- it "gets the correct resource" do
193
- expect(a_post("/projects/3/members").
194
- with(body: { user_id: '1', access_level: '40' })).to have_been_made
195
- end
196
-
197
- it "returns information about an added team member" do
198
- expect(@team_member.name).to eq("John Smith")
199
- end
200
- end
201
-
202
- describe ".edit_team_member" do
203
- before do
204
- stub_put("/projects/3/members/1", "team_member")
205
- @team_member = Gitlab.edit_team_member(3, 1, 40)
206
- end
207
-
208
- it "gets the correct resource" do
209
- expect(a_put("/projects/3/members/1").
210
- with(body: { access_level: '40' })).to have_been_made
211
- end
212
-
213
- it "returns information about an edited team member" do
214
- expect(@team_member.name).to eq("John Smith")
215
- end
216
- end
217
-
218
- describe ".remove_team_member" do
219
- before do
220
- stub_delete("/projects/3/members/1", "team_member")
221
- @team_member = Gitlab.remove_team_member(3, 1)
222
- end
223
-
224
- it "gets the correct resource" do
225
- expect(a_delete("/projects/3/members/1")).to have_been_made
226
- end
227
-
228
- it "returns information about a removed team member" do
229
- expect(@team_member.name).to eq("John Smith")
230
- end
231
- end
232
-
233
- describe ".project_hooks" do
234
- before do
235
- stub_get("/projects/1/hooks", "project_hooks")
236
- @hooks = Gitlab.project_hooks(1)
237
- end
238
-
239
- it "gets the correct resource" do
240
- expect(a_get("/projects/1/hooks")).to have_been_made
241
- end
242
-
243
- it "returns a paginated response of hooks" do
244
- expect(@hooks).to be_a Gitlab::PaginatedResponse
245
- expect(@hooks.first.url).to eq("https://api.example.net/v1/webhooks/ci")
246
- end
247
- end
248
-
249
- describe ".project_hook" do
250
- before do
251
- stub_get("/projects/1/hooks/1", "project_hook")
252
- @hook = Gitlab.project_hook(1, 1)
253
- end
254
-
255
- it "gets the correct resource" do
256
- expect(a_get("/projects/1/hooks/1")).to have_been_made
257
- end
258
-
259
- it "returns information about a hook" do
260
- expect(@hook.url).to eq("https://api.example.net/v1/webhooks/ci")
261
- end
262
- end
263
-
264
- describe ".add_project_hook" do
265
- context "without specified events" do
266
- before do
267
- stub_post("/projects/1/hooks", "project_hook")
268
- @hook = Gitlab.add_project_hook(1, "https://api.example.net/v1/webhooks/ci")
269
- end
270
-
271
- it "gets the correct resource" do
272
- body = { url: "https://api.example.net/v1/webhooks/ci" }
273
- expect(a_post("/projects/1/hooks").with(body: body)).to have_been_made
274
- end
275
-
276
- it "returns information about an added hook" do
277
- expect(@hook.url).to eq("https://api.example.net/v1/webhooks/ci")
278
- end
279
- end
280
-
281
- context "with specified events" do
282
- before do
283
- stub_post("/projects/1/hooks", "project_hook")
284
- @hook = Gitlab.add_project_hook(1, "https://api.example.net/v1/webhooks/ci", push_events: true, merge_requests_events: true)
285
- end
286
-
287
- it "gets the correct resource" do
288
- body = { url: "https://api.example.net/v1/webhooks/ci", push_events: "true", merge_requests_events: "true" }
289
- expect(a_post("/projects/1/hooks").with(body: body)).to have_been_made
290
- end
291
-
292
- it "returns information about an added hook" do
293
- expect(@hook.url).to eq("https://api.example.net/v1/webhooks/ci")
294
- end
295
- end
296
- end
297
-
298
- describe ".edit_project_hook" do
299
- before do
300
- stub_put("/projects/1/hooks/1", "project_hook")
301
- @hook = Gitlab.edit_project_hook(1, 1, "https://api.example.net/v1/webhooks/ci")
302
- end
303
-
304
- it "gets the correct resource" do
305
- body = { url: "https://api.example.net/v1/webhooks/ci" }
306
- expect(a_put("/projects/1/hooks/1").with(body: body)).to have_been_made
307
- end
308
-
309
- it "returns information about an edited hook" do
310
- expect(@hook.url).to eq("https://api.example.net/v1/webhooks/ci")
311
- end
312
- end
313
-
314
- describe ".edit_project" do
315
- context "using project ID" do
316
- before do
317
- stub_put("/projects/3", "project_edit").with(body: { name: "Gitlab-edit" })
318
- @edited_project = Gitlab.edit_project(3, name: "Gitlab-edit")
319
- end
320
-
321
- it "gets the correct resource" do
322
- expect(a_put("/projects/3").with(body: { name: "Gitlab-edit" })).to have_been_made
323
- end
324
-
325
- it "returns information about an edited project" do
326
- expect(@edited_project.name).to eq("Gitlab-edit")
327
- end
328
- end
329
-
330
- context "using namespaced project path" do
331
- it "encodes the path properly" do
332
- stub = stub_put("/projects/namespace%2Fpath", "project_edit").with(body: { name: "Gitlab-edit" })
333
- Gitlab.edit_project('namespace/path', name: "Gitlab-edit")
334
- expect(stub).to have_been_requested
335
- end
336
- end
337
- end
338
-
339
- describe ".delete_project_hook" do
340
- context "when empty response" do
341
- before do
342
- stub_request(:delete, "#{Gitlab.endpoint}/projects/1/hooks/1").
343
- with(headers: { 'PRIVATE-TOKEN' => Gitlab.private_token }).
344
- to_return(body: '')
345
- @hook = Gitlab.delete_project_hook(1, 1)
346
- end
347
-
348
- it "gets the correct resource" do
349
- expect(a_delete("/projects/1/hooks/1")).to have_been_made
350
- end
351
-
352
- it "returns false" do
353
- expect(@hook).to be(false)
354
- end
355
- end
356
-
357
- context "when JSON response" do
358
- before do
359
- stub_delete("/projects/1/hooks/1", "project_hook")
360
- @hook = Gitlab.delete_project_hook(1, 1)
361
- end
362
-
363
- it "gets the correct resource" do
364
- expect(a_delete("/projects/1/hooks/1")).to have_been_made
365
- end
366
-
367
- it "returns information about a deleted hook" do
368
- expect(@hook.url).to eq("https://api.example.net/v1/webhooks/ci")
369
- end
370
- end
371
- end
372
-
373
- describe ".push_rule" do
374
- before do
375
- stub_get("/projects/1/push_rule", "push_rule")
376
- @push_rule = Gitlab.push_rule(1)
377
- end
378
-
379
- it "gets the correct resource" do
380
- expect(a_get("/projects/1/push_rule")).to have_been_made
381
- end
382
-
383
- it "returns information about a push rule" do
384
- expect(@push_rule.commit_message_regex).to eq("\\b[A-Z]{3}-[0-9]+\\b")
385
- end
386
- end
387
-
388
- describe ".add_push_rule" do
389
- before do
390
- stub_post("/projects/1/push_rule", "push_rule")
391
- @push_rule = Gitlab.add_push_rule(1, { deny_delete_tag: false, commit_message_regex: "\\b[A-Z]{3}-[0-9]+\\b" })
392
- end
393
-
394
- it "gets the correct resource" do
395
- expect(a_post("/projects/1/push_rule")).to have_been_made
396
- end
397
-
398
- it "returns information about an added push rule" do
399
- expect(@push_rule.commit_message_regex).to eq("\\b[A-Z]{3}-[0-9]+\\b")
400
- end
401
- end
402
-
403
- describe ".edit_push_rule" do
404
- before do
405
- stub_put("/projects/1/push_rule", "push_rule")
406
- @push_rule = Gitlab.edit_push_rule(1, { deny_delete_tag: false, commit_message_regex: "\\b[A-Z]{3}-[0-9]+\\b" })
407
- end
408
-
409
- it "gets the correct resource" do
410
- expect(a_put("/projects/1/push_rule")).to have_been_made
411
- end
412
-
413
- it "returns information about an edited push rule" do
414
- expect(@push_rule.commit_message_regex).to eq("\\b[A-Z]{3}-[0-9]+\\b")
415
- end
416
- end
417
-
418
- describe ".delete_push_rule" do
419
- context "when empty response" do
420
- before do
421
- stub_request(:delete, "#{Gitlab.endpoint}/projects/1/push_rule").
422
- with(headers: { 'PRIVATE-TOKEN' => Gitlab.private_token }).
423
- to_return(body: '')
424
- @push_rule = Gitlab.delete_push_rule(1)
425
- end
426
-
427
- it "gets the correct resource" do
428
- expect(a_delete("/projects/1/push_rule")).to have_been_made
429
- end
430
-
431
- it "returns false" do
432
- expect(@push_rule).to be(false)
433
- end
434
- end
435
-
436
- context "when JSON response" do
437
- before do
438
- stub_delete("/projects/1/push_rule", "push_rule")
439
- @push_rule = Gitlab.delete_push_rule(1)
440
- end
441
-
442
- it "gets the correct resource" do
443
- expect(a_delete("/projects/1/push_rule")).to have_been_made
444
- end
445
-
446
- it "returns information about a deleted push rule" do
447
- expect(@push_rule.commit_message_regex).to eq("\\b[A-Z]{3}-[0-9]+\\b")
448
- end
449
- end
450
- end
451
-
452
- describe ".make_forked_from" do
453
- before do
454
- stub_post("/projects/42/fork/24", "project_fork_link")
455
- @forked_project_link = Gitlab.make_forked_from(42, 24)
456
- end
457
-
458
- it "gets the correct resource" do
459
- expect(a_post("/projects/42/fork/24")).to have_been_made
460
- end
461
-
462
- it "returns information about a forked project" do
463
- expect(@forked_project_link.forked_from_project_id).to eq(24)
464
- expect(@forked_project_link.forked_to_project_id).to eq(42)
465
- end
466
- end
467
-
468
- describe ".remove_forked" do
469
- before do
470
- stub_delete("/projects/42/fork", "project_fork_link")
471
- @forked_project_link = Gitlab.remove_forked(42)
472
- end
473
-
474
- it "gets the correct resource" do
475
- expect(a_delete("/projects/42/fork")).to have_been_made
476
- end
477
-
478
- it "returns information about an unforked project" do
479
- expect(@forked_project_link.forked_to_project_id).to eq(42)
480
- end
481
- end
482
-
483
- describe ".deploy_keys" do
484
- before do
485
- stub_get("/projects/42/deploy_keys", "project_keys")
486
- @deploy_keys = Gitlab.deploy_keys(42)
487
- end
488
-
489
- it "gets the correct resource" do
490
- expect(a_get("/projects/42/deploy_keys")).to have_been_made
491
- end
492
-
493
- it "returns project deploy keys" do
494
- expect(@deploy_keys).to be_a Gitlab::PaginatedResponse
495
- expect(@deploy_keys.first.id).to eq 2
496
- expect(@deploy_keys.first.title).to eq "Key Title"
497
- expect(@deploy_keys.first.key).to match(/ssh-rsa/)
498
- end
499
- end
500
-
501
- describe ".deploy_key" do
502
- before do
503
- stub_get("/projects/42/deploy_keys/2", "project_key")
504
- @deploy_key = Gitlab.deploy_key(42, 2)
505
- end
506
-
507
- it "gets the correct resource" do
508
- expect(a_get("/projects/42/deploy_keys/2")).to have_been_made
509
- end
510
-
511
- it "returns project deploy key" do
512
- expect(@deploy_key.id).to eq 2
513
- expect(@deploy_key.title).to eq "Key Title"
514
- expect(@deploy_key.key).to match(/ssh-rsa/)
515
- end
516
- end
517
-
518
- describe ".delete_deploy_key" do
519
- before do
520
- stub_delete("/projects/42/deploy_keys/2", "project_key")
521
- @deploy_key = Gitlab.delete_deploy_key(42, 2)
522
- end
523
-
524
- it "gets the correct resource" do
525
- expect(a_delete("/projects/42/deploy_keys/2")).to have_been_made
526
- end
527
-
528
- it "returns information about a deleted key" do
529
- expect(@deploy_key.id).to eq(2)
530
- end
531
- end
532
-
533
- describe ".enable_deploy_key" do
534
- before do
535
- stub_post("/projects/42/deploy_keys/2/enable", "project_key")
536
- @deploy_key = Gitlab.enable_deploy_key(42, 2)
537
- end
538
-
539
- it "gets the correct resource" do
540
- expect(a_post("/projects/42/deploy_keys/2/enable").
541
- with(body: { id: '42', key_id: '2' })).to have_been_made
542
- end
543
-
544
- it "returns information about an enabled key" do
545
- expect(@deploy_key.id).to eq(2)
546
- end
547
- end
548
-
549
- describe ".disable_deploy_key" do
550
- before do
551
- stub_post("/projects/42/deploy_keys/2/disable", "project_key")
552
- @deploy_key = Gitlab.disable_deploy_key(42, 2)
553
- end
554
-
555
- it "gets the correct resource" do
556
- expect(a_post("/projects/42/deploy_keys/2/disable").
557
- with(body: { id: '42', key_id: '2' })).to have_been_made
558
- end
559
-
560
- it "returns information about a disabled key" do
561
- expect(@deploy_key.id).to eq(2)
562
- end
563
- end
564
-
565
- describe ".share_project_with_group" do
566
- before do
567
- stub_post("/projects/3/share", "group")
568
- @group = Gitlab.share_project_with_group(3, 10, 40)
569
- end
570
-
571
- it "gets the correct resource" do
572
- expect(a_post("/projects/3/share").
573
- with(body: { group_id: '10', group_access: '40' })).to have_been_made
574
- end
575
-
576
- it "returns information about an added group" do
577
- expect(@group.id).to eq(10)
578
- end
579
- end
580
-
581
- describe ".star_project" do
582
- before do
583
- stub_post("/projects/3/star", "project_star")
584
- @starred_project = Gitlab.star_project(3)
585
- end
586
-
587
- it "gets the correct resource" do
588
- expect(a_post("/projects/3/star")).to have_been_made
589
- end
590
-
591
- it "returns information about the starred project" do
592
- expect(@starred_project.id).to eq(3)
593
- end
594
- end
595
-
596
- describe ".unstar_project" do
597
- before do
598
- stub_delete("/projects/3/star", "project_unstar")
599
- @unstarred_project = Gitlab.unstar_project(3)
600
- end
601
-
602
- it "gets the correct resource" do
603
- expect(a_delete("/projects/3/star")).to have_been_made
604
- end
605
-
606
- it "returns information about the unstarred project" do
607
- expect(@unstarred_project.id).to eq(3)
608
- end
609
- end
610
-
611
- describe ".user_projects" do
612
- let(:user_id) { 1 }
613
- let(:project_id) { 1 }
614
-
615
- before do
616
- stub_get("/users/#{user_id}/projects", "user_projects")
617
- @user_projects = Gitlab.user_projects(user_id)
618
- end
619
-
620
- it "gets the correct resource" do
621
- expect(a_get("/users/#{user_id}/projects")).to have_been_made
622
- end
623
-
624
- it "returns a paginated response of projects" do
625
- expect(@user_projects).to be_a Gitlab::PaginatedResponse
626
- expect(@user_projects.first.id).to eq(project_id)
627
- expect(@user_projects.first.owner.id).to eq(user_id)
628
- end
629
- end
630
- end