gitlab 4.4.0 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.
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,100 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- describe ".snippets" do
5
- before do
6
- stub_get("/projects/3/snippets", "snippets")
7
- @snippets = Gitlab.snippets(3)
8
- end
9
-
10
- it "gets the correct resource" do
11
- expect(a_get("/projects/3/snippets")).to have_been_made
12
- end
13
-
14
- it "returns a paginated response of project's snippets" do
15
- expect(@snippets).to be_a Gitlab::PaginatedResponse
16
- expect(@snippets.first.file_name).to eq("mailer_test.rb")
17
- end
18
- end
19
-
20
- describe ".snippet" do
21
- before do
22
- stub_get("/projects/3/snippets/1", "snippet")
23
- @snippet = Gitlab.snippet(3, 1)
24
- end
25
-
26
- it "gets the correct resource" do
27
- expect(a_get("/projects/3/snippets/1")).to have_been_made
28
- end
29
-
30
- it "returns information about a snippet" do
31
- expect(@snippet.file_name).to eq("mailer_test.rb")
32
- expect(@snippet.author.name).to eq("John Smith")
33
- end
34
- end
35
-
36
- describe ".create_snippet" do
37
- before do
38
- stub_post("/projects/3/snippets", "snippet")
39
- @snippet = Gitlab.create_snippet(3, title: 'API', file_name: 'api.rb', code: 'code', visibility: 'public')
40
- end
41
-
42
- it "gets the correct resource" do
43
- body = { title: 'API', file_name: 'api.rb', code: 'code', visibility: 'public' }
44
- expect(a_post("/projects/3/snippets").with(body: body)).to have_been_made
45
- end
46
-
47
- it "returns information about a new snippet" do
48
- expect(@snippet.file_name).to eq("mailer_test.rb")
49
- expect(@snippet.author.name).to eq("John Smith")
50
- end
51
- end
52
-
53
- describe ".edit_snippet" do
54
- before do
55
- stub_put("/projects/3/snippets/1", "snippet")
56
- @snippet = Gitlab.edit_snippet(3, 1, file_name: 'mailer_test.rb')
57
- end
58
-
59
- it "gets the correct resource" do
60
- expect(a_put("/projects/3/snippets/1").
61
- with(body: { file_name: 'mailer_test.rb' })).to have_been_made
62
- end
63
-
64
- it "returns information about an edited snippet" do
65
- expect(@snippet.file_name).to eq("mailer_test.rb")
66
- expect(@snippet.author.name).to eq("John Smith")
67
- end
68
- end
69
-
70
- describe ".delete_snippet" do
71
- before do
72
- stub_delete("/projects/3/snippets/1", "snippet")
73
- @snippet = Gitlab.delete_snippet(3, 1)
74
- end
75
-
76
- it "gets the correct resource" do
77
- expect(a_delete("/projects/3/snippets/1")).to have_been_made
78
- end
79
-
80
- it "returns information about a deleted snippet" do
81
- expect(@snippet.file_name).to eq("mailer_test.rb")
82
- expect(@snippet.author.name).to eq("John Smith")
83
- end
84
- end
85
-
86
- describe ".snippet_content" do
87
- before do
88
- stub_get("/projects/3/snippets/1/raw", "snippet_content")
89
- @snippet_content = Gitlab.snippet_content(3, 1)
90
- end
91
-
92
- it "gets the correct resource" do
93
- expect(a_get("/projects/3/snippets/1/raw")).to have_been_made
94
- end
95
-
96
- it "returns raw content of a snippet" do
97
- expect(@snippet_content).to eq("#!/usr/bin/env ruby\n\nputs \"Cool snippet!\"\n")
98
- end
99
- end
100
- end
@@ -1,69 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- it { is_expected.to respond_to :system_hooks }
5
- it { is_expected.to respond_to :add_system_hook }
6
- it { is_expected.to respond_to :system_hook }
7
- it { is_expected.to respond_to :delete_system_hook }
8
-
9
- describe ".hooks" do
10
- before do
11
- stub_get("/hooks", "system_hooks")
12
- @hooks = Gitlab.hooks
13
- end
14
-
15
- it "gets the correct resource" do
16
- expect(a_get("/hooks")).to have_been_made
17
- end
18
-
19
- it "returns a paginated response of system hooks" do
20
- expect(@hooks).to be_a Gitlab::PaginatedResponse
21
- expect(@hooks.first.url).to eq("http://example.com/hook")
22
- end
23
- end
24
-
25
- describe ".add_hook" do
26
- before do
27
- stub_post("/hooks", "system_hook")
28
- @hook = Gitlab.add_hook("http://example.com/hook", token: 'secret-token')
29
- end
30
-
31
- it "gets the correct resource" do
32
- expect(a_post("/hooks").with(body: hash_including(token: 'secret-token'))).to have_been_made
33
- end
34
-
35
- it "returns information about a added system hook" do
36
- expect(@hook.url).to eq("http://example.com/hook")
37
- end
38
- end
39
-
40
- describe ".hook" do
41
- before do
42
- stub_get("/hooks/3", "system_hook")
43
- @hook = Gitlab.hook(3)
44
- end
45
-
46
- it "gets the correct resource" do
47
- expect(a_get("/hooks/3")).to have_been_made
48
- end
49
-
50
- it "returns information about a added system hook" do
51
- expect(@hook.url).to eq("http://example.com/hook")
52
- end
53
- end
54
-
55
- describe ".delete_hook" do
56
- before do
57
- stub_delete("/hooks/3", "system_hook")
58
- @hook = Gitlab.delete_hook(3)
59
- end
60
-
61
- it "gets the correct resource" do
62
- expect(a_delete("/hooks/3")).to have_been_made
63
- end
64
-
65
- it "returns information about a deleted system hook" do
66
- expect(@hook.url).to eq("http://example.com/hook")
67
- end
68
- end
69
- end
@@ -1,152 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- it { is_expected.to respond_to :repo_tags }
5
- it { is_expected.to respond_to :repo_tag }
6
- it { is_expected.to respond_to :repo_create_tag }
7
- it { is_expected.to respond_to :repo_delete_tag }
8
- it { is_expected.to respond_to :repo_create_release }
9
- it { is_expected.to respond_to :repo_update_release }
10
-
11
- describe '.tags' do
12
- before do
13
- stub_get("/projects/3/repository/tags", "tags")
14
- @tags = Gitlab.tags(3)
15
- end
16
-
17
- it "gets the correct resource" do
18
- expect(a_get("/projects/3/repository/tags")).to have_been_made
19
- end
20
-
21
- it "returns a paginated response of repository tags" do
22
- expect(@tags).to be_a Gitlab::PaginatedResponse
23
- expect(@tags.map(&:name)).to eq(%w[0.0.2 0.0.1])
24
- end
25
- end
26
-
27
- describe ".tag" do
28
- before do
29
- stub_get("/projects/3/repository/tags/0.0.1", "tag")
30
- @tag = Gitlab.tag(3, "0.0.1")
31
- end
32
-
33
- it "gets the correct resource" do
34
- expect(a_get("/projects/3/repository/tags/0.0.1")).to have_been_made
35
- end
36
-
37
- it "returns information about a repository tag" do
38
- expect(@tag.name).to eq("0.0.1")
39
- end
40
-
41
- context "tag with special character" do
42
- before do
43
- stub_get("/projects/3/repository/tags/test%2Fme", "tag")
44
- @tag = Gitlab.tag(3, "test/me")
45
- end
46
-
47
- it "gets the correct resource" do
48
- expect(a_get("/projects/3/repository/tags/test%2Fme")).to have_been_made
49
- end
50
- end
51
- end
52
-
53
- describe ".create_tag" do
54
- before do
55
- stub_post("/projects/3/repository/tags", "tag_create")
56
- @tag = Gitlab.create_tag(3, "0.0.1", "master", 'this tag is annotated', 'and it has release notes')
57
- end
58
-
59
- it "gets the correct resource" do
60
- expect(a_post("/projects/3/repository/tags")).to have_been_made
61
- end
62
-
63
- it "returns information about a new repository tag" do
64
- expect(@tag.name).to eq("0.0.1")
65
- expect(@tag.message).to eq('this tag is annotated')
66
- end
67
-
68
- it "returns detailed information" do
69
- expect(@tag.release.description).to eq('and it has release notes')
70
- end
71
- end
72
-
73
- describe ".delete_tag" do
74
- before do
75
- stub_delete("/projects/3/repository/tags/0.0.1", "tag_delete")
76
- @tag = Gitlab.delete_tag(3, "0.0.1")
77
- end
78
-
79
- it "gets the correct resource" do
80
- expect(a_delete("/projects/3/repository/tags/0.0.1")).to have_been_made
81
- end
82
-
83
- it "returns information about the deleted repository tag" do
84
- expect(@tag.tag_name).to eq("0.0.1")
85
- end
86
-
87
- context "tag with special character" do
88
- before do
89
- stub_delete("/projects/3/repository/tags/test%2Fme", "tag_delete")
90
- @tag = Gitlab.delete_tag(3, "test/me")
91
- end
92
-
93
- it "gets the correct resource" do
94
- expect(a_delete("/projects/3/repository/tags/test%2Fme")).to have_been_made
95
- end
96
- end
97
- end
98
-
99
- describe ".create_release" do
100
- before do
101
- stub_post("/projects/3/repository/tags/0.0.1/release", "release_create")
102
- @tag = Gitlab.create_release(3, "0.0.1", "Amazing release. Wow")
103
- end
104
-
105
- it "gets the correct resource" do
106
- expect(a_post("/projects/3/repository/tags/0.0.1/release")).to have_been_made
107
- end
108
-
109
- it "returns information about the tag and the release" do
110
- expect(@tag.tag_name).to eq("0.0.1")
111
- expect(@tag.description).to eq("Amazing release. Wow")
112
- end
113
-
114
- context "tag with special character" do
115
- before do
116
- stub_post("/projects/3/repository/tags/test%2Fme/release", "release_create")
117
- @tag = Gitlab.create_release(3, "test/me", "Amazing release. Wow")
118
- end
119
-
120
- it "gets the correct resource" do
121
- expect(a_post("/projects/3/repository/tags/test%2Fme/release")).to have_been_made
122
- end
123
- end
124
- end
125
-
126
- describe ".update_release" do
127
- before do
128
- stub_put("/projects/3/repository/tags/0.0.1/release", "release_update")
129
- @tag = Gitlab.update_release(3, "0.0.1", 'Amazing release. Wow')
130
- end
131
-
132
- it "updates the correct resource" do
133
- expect(a_put("/projects/3/repository/tags/0.0.1/release")).to have_been_made
134
- end
135
-
136
- it "returns information about the tag" do
137
- expect(@tag.tag_name).to eq("0.0.1")
138
- expect(@tag.description).to eq('Amazing release. Wow')
139
- end
140
-
141
- context "tag with special character" do
142
- before do
143
- stub_put("/projects/3/repository/tags/test%2Fme/release", "release_update")
144
- @tag = Gitlab.update_release(3, "test/me", 'Amazing release. Wow')
145
- end
146
-
147
- it "updates the correct resource" do
148
- expect(a_put("/projects/3/repository/tags/test%2Fme/release")).to have_been_made
149
- end
150
- end
151
- end
152
- end
@@ -1,45 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- describe '.todos' do
5
- before do
6
- stub_get("/todos", "todos")
7
- @todos = Gitlab.todos
8
- end
9
-
10
- it "gets the correct resources" do
11
- expect(a_get("/todos")).to have_been_made
12
- end
13
-
14
- it "returns a paginated response of user's todos" do
15
- expect(@todos).to be_a Gitlab::PaginatedResponse
16
- end
17
- end
18
-
19
- describe '.mark_todo_as_done' do
20
- before do
21
- stub_post("/todos/102/mark_as_done", "todo")
22
- @todo = Gitlab.mark_todo_as_done(102)
23
- end
24
-
25
- it "gets the correct resource" do
26
- expect(a_post("/todos/102/mark_as_done")).to have_been_made
27
- end
28
-
29
- it "returns information about the todo marked as done" do
30
- expect(@todo.id).to eq(102)
31
- expect(@todo.state).to eq('done')
32
- end
33
- end
34
-
35
- describe '.mark_all_todos_as_done' do
36
- before do
37
- stub_post("/todos/mark_as_done", "todos")
38
- @todos = Gitlab.mark_all_todos_as_done
39
- end
40
-
41
- it "gets the correct resources" do
42
- expect(a_post("/todos/mark_as_done")).to have_been_made
43
- end
44
- end
45
- end
@@ -1,418 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gitlab::Client do
4
- describe ".users" do
5
- before do
6
- stub_get("/users", "users")
7
- @users = Gitlab.users
8
- end
9
-
10
- it "gets the correct resource" do
11
- expect(a_get("/users")).to have_been_made
12
- end
13
-
14
- it "returns a paginated response of users" do
15
- expect(@users).to be_a Gitlab::PaginatedResponse
16
- expect(@users.first.email).to eq("john@example.com")
17
- end
18
- end
19
-
20
- describe ".user" do
21
- context "with user ID passed" do
22
- before do
23
- stub_get("/users/1", "user")
24
- @user = Gitlab.user(1)
25
- end
26
-
27
- it "gets the correct resource" do
28
- expect(a_get("/users/1")).to have_been_made
29
- end
30
-
31
- it "returns information about a user" do
32
- expect(@user.email).to eq("john@example.com")
33
- end
34
- end
35
-
36
- context "without user ID passed" do
37
- before do
38
- stub_get("/user", "user")
39
- @user = Gitlab.user
40
- end
41
-
42
- it "gets the correct resource" do
43
- expect(a_get("/user")).to have_been_made
44
- end
45
-
46
- it "returns information about an authorized user" do
47
- expect(@user.email).to eq("john@example.com")
48
- end
49
- end
50
- end
51
-
52
- describe ".create_user" do
53
- context "when successful request" do
54
- before do
55
- stub_post("/users", "user")
56
- @user = Gitlab.create_user("email", "pass")
57
- end
58
-
59
- it "gets the correct resource" do
60
- body = { email: "email", password: "pass", name: "email" }
61
- expect(a_post("/users").with(body: body)).to have_been_made
62
- end
63
-
64
- it "returns information about a created user" do
65
- expect(@user.email).to eq("john@example.com")
66
- end
67
- end
68
-
69
- context "when bad request" do
70
- it "throws an exception" do
71
- stub_post("/users", "error_already_exists", 409)
72
- expect do
73
- Gitlab.create_user("email", "pass")
74
- end.to raise_error(Gitlab::Error::Conflict, "Server responded with code 409, message: 409 Already exists. Request URI: #{Gitlab.endpoint}/users")
75
- end
76
- end
77
- end
78
-
79
- describe ".create_user_with_userame" do
80
- context "when successful request" do
81
- before do
82
- stub_post("/users", "user")
83
- @user = Gitlab.create_user("email", "pass", "username")
84
- end
85
-
86
- it "gets the correct resource" do
87
- body = { email: "email", password: "pass", username: "username" }
88
- expect(a_post("/users").with(body: body)).to have_been_made
89
- end
90
-
91
- it "returns information about a created user" do
92
- expect(@user.email).to eq("john@example.com")
93
- end
94
- end
95
-
96
- context "when bad request" do
97
- it "throws an exception" do
98
- stub_post("/users", "error_already_exists", 409)
99
- expect do
100
- Gitlab.create_user("email", "pass", "username")
101
- end.to raise_error(Gitlab::Error::Conflict, "Server responded with code 409, message: 409 Already exists. Request URI: #{Gitlab.endpoint}/users")
102
- end
103
- end
104
- end
105
-
106
- describe ".edit_user" do
107
- before do
108
- @options = { name: "Roberto" }
109
- stub_put("/users/1", "user").with(body: @options)
110
- @user = Gitlab.edit_user(1, @options)
111
- end
112
-
113
- it "gets the correct resource" do
114
- expect(a_put("/users/1").with(body: @options)).to have_been_made
115
- end
116
- end
117
-
118
- describe ".delete_user" do
119
- before do
120
- stub_delete("/users/1", "user")
121
- @user = Gitlab.delete_user(1)
122
- end
123
-
124
- it "gets the correct resource" do
125
- expect(a_delete("/users/1")).to have_been_made
126
- end
127
-
128
- it "returns information about a deleted user" do
129
- expect(@user.email).to eq("john@example.com")
130
- end
131
- end
132
-
133
- describe ".block_user" do
134
- before do
135
- stub_post("/users/1/block", "user_block_unblock")
136
- @result = Gitlab.block_user(1)
137
- end
138
-
139
- it "gets the correct resource" do
140
- expect(a_post("/users/1/block")).to have_been_made
141
- end
142
-
143
- it "returns boolean" do
144
- expect(@result).to eq(true)
145
- end
146
- end
147
-
148
- describe ".unblock_user" do
149
- before do
150
- stub_post("/users/1/unblock", "user_block_unblock")
151
- @result = Gitlab.unblock_user(1)
152
- end
153
-
154
- it "gets the correct resource" do
155
- expect(a_post("/users/1/unblock")).to have_been_made
156
- end
157
-
158
- it "returns boolean" do
159
- expect(@result).to eq(true)
160
- end
161
- end
162
-
163
- describe ".session" do
164
- after do
165
- Gitlab.endpoint = 'https://api.example.com'
166
- Gitlab.private_token = 'secret'
167
- end
168
-
169
- before do
170
- stub_request(:post, "#{Gitlab.endpoint}/session").
171
- to_return(body: load_fixture('session'), status: 200)
172
- @session = Gitlab.session("email", "pass")
173
- end
174
-
175
- context "when endpoint is not set" do
176
- it "raises Error::MissingCredentials" do
177
- Gitlab.endpoint = nil
178
- expect do
179
- Gitlab.session("email", "pass")
180
- end.to raise_error(Gitlab::Error::MissingCredentials, 'Please set an endpoint to API')
181
- end
182
- end
183
-
184
- context "when private_token is not set" do
185
- it "does not raise Error::MissingCredentials" do
186
- Gitlab.private_token = nil
187
- expect { Gitlab.session("email", "pass") }.to_not raise_error
188
- end
189
- end
190
-
191
- context "when endpoint is set" do
192
- it "gets the correct resource" do
193
- expect(a_request(:post, "#{Gitlab.endpoint}/session")).to have_been_made
194
- end
195
-
196
- it "returns information about a created session" do
197
- expect(@session.email).to eq("john@example.com")
198
- expect(@session.private_token).to eq("qEsq1pt6HJPaNciie3MG")
199
- end
200
- end
201
- end
202
-
203
- describe ".ssh_keys" do
204
- context "with user ID passed" do
205
- before do
206
- stub_get("/users/1/keys", "keys")
207
- @keys = Gitlab.ssh_keys({ user_id: 1 })
208
- end
209
-
210
- it "gets the correct resource" do
211
- expect(a_get("/users/1/keys")).to have_been_made
212
- end
213
-
214
- it "returns a paginated response of SSH keys" do
215
- expect(@keys).to be_a Gitlab::PaginatedResponse
216
- expect(@keys.first.title).to eq("narkoz@helium")
217
- end
218
- end
219
-
220
- context "without user ID passed" do
221
- before do
222
- stub_get("/user/keys", "keys")
223
- @keys = Gitlab.ssh_keys
224
- end
225
-
226
- it "gets the correct resource" do
227
- expect(a_get("/user/keys")).to have_been_made
228
- end
229
-
230
- it "returns a paginated response of SSH keys" do
231
- expect(@keys).to be_a Gitlab::PaginatedResponse
232
- expect(@keys.first.title).to eq("narkoz@helium")
233
- end
234
- end
235
- end
236
-
237
- describe ".ssh_key" do
238
- before do
239
- stub_get("/user/keys/1", "key")
240
- @key = Gitlab.ssh_key(1)
241
- end
242
-
243
- it "gets the correct resource" do
244
- expect(a_get("/user/keys/1")).to have_been_made
245
- end
246
-
247
- it "returns information about an SSH key" do
248
- expect(@key.title).to eq("narkoz@helium")
249
- end
250
- end
251
-
252
- describe ".create_ssh_key" do
253
- before do
254
- stub_post("/user/keys", "key")
255
- @key = Gitlab.create_ssh_key("title", "body")
256
- end
257
-
258
- it "gets the correct resource" do
259
- body = { title: "title", key: "body" }
260
- expect(a_post("/user/keys").with(body: body)).to have_been_made
261
- end
262
-
263
- it "returns information about a created SSH key" do
264
- expect(@key.title).to eq("narkoz@helium")
265
- end
266
- end
267
-
268
- describe ".delete_ssh_key" do
269
- before do
270
- stub_delete("/user/keys/1", "key")
271
- @key = Gitlab.delete_ssh_key(1)
272
- end
273
-
274
- it "gets the correct resource" do
275
- expect(a_delete("/user/keys/1")).to have_been_made
276
- end
277
-
278
- it "returns information about a deleted SSH key" do
279
- expect(@key.title).to eq("narkoz@helium")
280
- end
281
- end
282
-
283
- describe ".emails" do
284
- describe "without user ID" do
285
- before do
286
- stub_get("/user/emails", "user_emails")
287
- @emails = Gitlab.emails
288
- end
289
-
290
- it "gets the correct resource" do
291
- expect(a_get("/user/emails")).to have_been_made
292
- end
293
-
294
- it "returns a information about a emails of user" do
295
- email = @emails.first
296
- expect(email.id).to eq 1
297
- expect(email.email).to eq("email@example.com")
298
- end
299
- end
300
-
301
- describe "with user ID" do
302
- before do
303
- stub_get("/users/2/emails", "user_emails")
304
- @emails = Gitlab.emails(2)
305
- end
306
-
307
- it "gets the correct resource" do
308
- expect(a_get("/users/2/emails")).to have_been_made
309
- end
310
-
311
- it "returns a information about a emails of user" do
312
- email = @emails.first
313
- expect(email.id).to eq 1
314
- expect(email.email).to eq("email@example.com")
315
- end
316
- end
317
- end
318
-
319
- describe ".email" do
320
- before do
321
- stub_get("/user/emails/2", "user_email")
322
- @email = Gitlab.email(2)
323
- end
324
-
325
- it "gets the correct resource" do
326
- expect(a_get("/user/emails/2")).to have_been_made
327
- end
328
-
329
- it "returns a information about a email of user" do
330
- expect(@email.id).to eq 1
331
- expect(@email.email).to eq("email@example.com")
332
- end
333
- end
334
-
335
- describe ".add_email" do
336
- describe "without user ID" do
337
- before do
338
- stub_post("/user/emails", "user_email")
339
- @email = Gitlab.add_email("email@example.com")
340
- end
341
-
342
- it "gets the correct resource" do
343
- body = { email: "email@example.com" }
344
- expect(a_post("/user/emails").with(body: body)).to have_been_made
345
- end
346
-
347
- it "returns information about a new email" do
348
- expect(@email.id).to eq(1)
349
- expect(@email.email).to eq("email@example.com")
350
- end
351
- end
352
-
353
- describe "with user ID" do
354
- before do
355
- stub_post("/users/2/emails", "user_email")
356
- @email = Gitlab.add_email("email@example.com", 2)
357
- end
358
-
359
- it "gets the correct resource" do
360
- body = { email: "email@example.com" }
361
- expect(a_post("/users/2/emails").with(body: body)).to have_been_made
362
- end
363
-
364
- it "returns information about a new email" do
365
- expect(@email.id).to eq(1)
366
- expect(@email.email).to eq("email@example.com")
367
- end
368
- end
369
- end
370
-
371
- describe ".delete_email" do
372
- describe "without user ID" do
373
- before do
374
- stub_delete("/user/emails/1", "user_email")
375
- @email = Gitlab.delete_email(1)
376
- end
377
-
378
- it "gets the correct resource" do
379
- expect(a_delete("/user/emails/1")).to have_been_made
380
- end
381
-
382
- it "returns information about a deleted email" do
383
- expect(@email).to be_truthy
384
- end
385
- end
386
-
387
- describe "with user ID" do
388
- before do
389
- stub_delete("/users/2/emails/1", "user_email")
390
- @email = Gitlab.delete_email(1, 2)
391
- end
392
-
393
- it "gets the correct resource" do
394
- expect(a_delete("/users/2/emails/1")).to have_been_made
395
- end
396
-
397
- it "returns information about a deleted email" do
398
- expect(@email).to be_truthy
399
- end
400
- end
401
- end
402
-
403
- describe ".user_search" do
404
- before do
405
- stub_get("/users?search=User", "user_search")
406
- @users = Gitlab.user_search('User')
407
- end
408
-
409
- it "gets the correct resource" do
410
- expect(a_get("/users?search=User")).to have_been_made
411
- end
412
-
413
- it "returns an array of users found" do
414
- expect(@users.first.id).to eq(1)
415
- expect(@users.last.id).to eq(2)
416
- end
417
- end
418
- end