gitlab-akerl 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.prospectus +11 -0
  4. data/.travis.yml +8 -0
  5. data/CHANGELOG.md +229 -0
  6. data/CONTRIBUTING.md +195 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE.txt +24 -0
  9. data/README.md +192 -0
  10. data/Rakefile +9 -0
  11. data/bin/console +10 -0
  12. data/bin/setup +6 -0
  13. data/exe/gitlab +7 -0
  14. data/gitlab-akerl.gemspec +31 -0
  15. data/lib/gitlab.rb +45 -0
  16. data/lib/gitlab/api.rb +19 -0
  17. data/lib/gitlab/cli.rb +89 -0
  18. data/lib/gitlab/cli_helpers.rb +241 -0
  19. data/lib/gitlab/client.rb +48 -0
  20. data/lib/gitlab/client/branches.rb +91 -0
  21. data/lib/gitlab/client/build_triggers.rb +51 -0
  22. data/lib/gitlab/client/build_variables.rb +66 -0
  23. data/lib/gitlab/client/builds.rb +106 -0
  24. data/lib/gitlab/client/commits.rb +121 -0
  25. data/lib/gitlab/client/groups.rb +144 -0
  26. data/lib/gitlab/client/issues.rb +113 -0
  27. data/lib/gitlab/client/labels.rb +57 -0
  28. data/lib/gitlab/client/merge_requests.rb +168 -0
  29. data/lib/gitlab/client/milestones.rb +78 -0
  30. data/lib/gitlab/client/namespaces.rb +20 -0
  31. data/lib/gitlab/client/notes.rb +161 -0
  32. data/lib/gitlab/client/pipelines.rb +68 -0
  33. data/lib/gitlab/client/projects.rb +471 -0
  34. data/lib/gitlab/client/repositories.rb +78 -0
  35. data/lib/gitlab/client/repository_files.rb +88 -0
  36. data/lib/gitlab/client/runners.rb +115 -0
  37. data/lib/gitlab/client/services.rb +50 -0
  38. data/lib/gitlab/client/snippets.rb +91 -0
  39. data/lib/gitlab/client/system_hooks.rb +59 -0
  40. data/lib/gitlab/client/tags.rb +96 -0
  41. data/lib/gitlab/client/users.rb +250 -0
  42. data/lib/gitlab/configuration.rb +55 -0
  43. data/lib/gitlab/error.rb +85 -0
  44. data/lib/gitlab/file_response.rb +46 -0
  45. data/lib/gitlab/help.rb +95 -0
  46. data/lib/gitlab/objectified_hash.rb +34 -0
  47. data/lib/gitlab/page_links.rb +33 -0
  48. data/lib/gitlab/paginated_response.rb +97 -0
  49. data/lib/gitlab/request.rb +117 -0
  50. data/lib/gitlab/shell.rb +84 -0
  51. data/lib/gitlab/shell_history.rb +59 -0
  52. data/lib/gitlab/version.rb +3 -0
  53. data/spec/fixtures/branch.json +1 -0
  54. data/spec/fixtures/branch_delete.json +3 -0
  55. data/spec/fixtures/branches.json +1 -0
  56. data/spec/fixtures/build.json +38 -0
  57. data/spec/fixtures/build_artifacts.json +0 -0
  58. data/spec/fixtures/build_cancel.json +24 -0
  59. data/spec/fixtures/build_erase.json +24 -0
  60. data/spec/fixtures/build_retry.json +24 -0
  61. data/spec/fixtures/builds.json +78 -0
  62. data/spec/fixtures/builds_commits.json +64 -0
  63. data/spec/fixtures/compare_merge_request_diff.json +31 -0
  64. data/spec/fixtures/error_already_exists.json +1 -0
  65. data/spec/fixtures/error_project_not_found.json +1 -0
  66. data/spec/fixtures/get_repository_file.json +1 -0
  67. data/spec/fixtures/git_hook.json +1 -0
  68. data/spec/fixtures/group.json +60 -0
  69. data/spec/fixtures/group_create.json +1 -0
  70. data/spec/fixtures/group_create_with_description.json +1 -0
  71. data/spec/fixtures/group_delete.json +1 -0
  72. data/spec/fixtures/group_member.json +1 -0
  73. data/spec/fixtures/group_member_delete.json +1 -0
  74. data/spec/fixtures/group_member_edit.json +1 -0
  75. data/spec/fixtures/group_members.json +1 -0
  76. data/spec/fixtures/group_projects.json +44 -0
  77. data/spec/fixtures/group_search.json +2 -0
  78. data/spec/fixtures/groups.json +2 -0
  79. data/spec/fixtures/issue.json +1 -0
  80. data/spec/fixtures/issues.json +1 -0
  81. data/spec/fixtures/key.json +1 -0
  82. data/spec/fixtures/keys.json +1 -0
  83. data/spec/fixtures/label.json +1 -0
  84. data/spec/fixtures/labels.json +1 -0
  85. data/spec/fixtures/merge_request.json +1 -0
  86. data/spec/fixtures/merge_request_changes.json +1 -0
  87. data/spec/fixtures/merge_request_comment.json +1 -0
  88. data/spec/fixtures/merge_request_comments.json +1 -0
  89. data/spec/fixtures/merge_request_commits.json +1 -0
  90. data/spec/fixtures/merge_requests.json +1 -0
  91. data/spec/fixtures/milestone.json +1 -0
  92. data/spec/fixtures/milestone_issues.json +1 -0
  93. data/spec/fixtures/milestones.json +1 -0
  94. data/spec/fixtures/namespaces.json +1 -0
  95. data/spec/fixtures/note.json +1 -0
  96. data/spec/fixtures/notes.json +1 -0
  97. data/spec/fixtures/pipeline.json +23 -0
  98. data/spec/fixtures/pipeline_cancel.json +23 -0
  99. data/spec/fixtures/pipeline_create.json +23 -0
  100. data/spec/fixtures/pipeline_retry.json +23 -0
  101. data/spec/fixtures/pipelines.json +48 -0
  102. data/spec/fixtures/project.json +1 -0
  103. data/spec/fixtures/project_commit.json +13 -0
  104. data/spec/fixtures/project_commit_comment.json +1 -0
  105. data/spec/fixtures/project_commit_comments.json +1 -0
  106. data/spec/fixtures/project_commit_diff.json +10 -0
  107. data/spec/fixtures/project_commit_status.json +42 -0
  108. data/spec/fixtures/project_commits.json +1 -0
  109. data/spec/fixtures/project_edit.json +21 -0
  110. data/spec/fixtures/project_events.json +1 -0
  111. data/spec/fixtures/project_for_user.json +1 -0
  112. data/spec/fixtures/project_fork.json +50 -0
  113. data/spec/fixtures/project_fork_link.json +1 -0
  114. data/spec/fixtures/project_forked_for_user.json +50 -0
  115. data/spec/fixtures/project_hook.json +1 -0
  116. data/spec/fixtures/project_hooks.json +1 -0
  117. data/spec/fixtures/project_issues.json +1 -0
  118. data/spec/fixtures/project_key.json +6 -0
  119. data/spec/fixtures/project_keys.json +6 -0
  120. data/spec/fixtures/project_runner_enable.json +7 -0
  121. data/spec/fixtures/project_runners.json +16 -0
  122. data/spec/fixtures/project_search.json +1 -0
  123. data/spec/fixtures/project_star.json +44 -0
  124. data/spec/fixtures/project_tag_annotated.json +1 -0
  125. data/spec/fixtures/project_tag_lightweight.json +1 -0
  126. data/spec/fixtures/project_tags.json +1 -0
  127. data/spec/fixtures/project_unstar.json +44 -0
  128. data/spec/fixtures/project_update_commit_status.json +20 -0
  129. data/spec/fixtures/projects.json +1 -0
  130. data/spec/fixtures/raw_file.json +2 -0
  131. data/spec/fixtures/release_create.json +1 -0
  132. data/spec/fixtures/release_update.json +1 -0
  133. data/spec/fixtures/repository_file.json +1 -0
  134. data/spec/fixtures/runner.json +26 -0
  135. data/spec/fixtures/runner_delete.json +7 -0
  136. data/spec/fixtures/runner_edit.json +26 -0
  137. data/spec/fixtures/runners.json +16 -0
  138. data/spec/fixtures/runners_all.json +30 -0
  139. data/spec/fixtures/service.json +1 -0
  140. data/spec/fixtures/session.json +1 -0
  141. data/spec/fixtures/shell_history.json +2 -0
  142. data/spec/fixtures/snippet.json +1 -0
  143. data/spec/fixtures/snippet_content.json +3 -0
  144. data/spec/fixtures/snippets.json +1 -0
  145. data/spec/fixtures/system_hook.json +1 -0
  146. data/spec/fixtures/system_hooks.json +1 -0
  147. data/spec/fixtures/tag.json +1 -0
  148. data/spec/fixtures/tag_create.json +1 -0
  149. data/spec/fixtures/tag_create_with_description.json +1 -0
  150. data/spec/fixtures/tag_delete.json +1 -0
  151. data/spec/fixtures/tags.json +1 -0
  152. data/spec/fixtures/team_member.json +1 -0
  153. data/spec/fixtures/team_members.json +1 -0
  154. data/spec/fixtures/tree.json +1 -0
  155. data/spec/fixtures/trigger.json +7 -0
  156. data/spec/fixtures/triggers.json +16 -0
  157. data/spec/fixtures/user.json +1 -0
  158. data/spec/fixtures/user_block_unblock.json +1 -0
  159. data/spec/fixtures/user_email.json +1 -0
  160. data/spec/fixtures/user_emails.json +1 -0
  161. data/spec/fixtures/user_search.json +1 -0
  162. data/spec/fixtures/users.json +1 -0
  163. data/spec/fixtures/variable.json +4 -0
  164. data/spec/fixtures/variables.json +10 -0
  165. data/spec/gitlab/cli_helpers_spec.rb +57 -0
  166. data/spec/gitlab/cli_spec.rb +110 -0
  167. data/spec/gitlab/client/branches_spec.rb +99 -0
  168. data/spec/gitlab/client/build_triggers_spec.rb +67 -0
  169. data/spec/gitlab/client/build_variables_spec.rb +86 -0
  170. data/spec/gitlab/client/builds_spec.rb +148 -0
  171. data/spec/gitlab/client/client_spec.rb +11 -0
  172. data/spec/gitlab/client/commits_spec.rb +137 -0
  173. data/spec/gitlab/client/groups_spec.rb +197 -0
  174. data/spec/gitlab/client/issues_spec.rb +138 -0
  175. data/spec/gitlab/client/labels_spec.rb +68 -0
  176. data/spec/gitlab/client/merge_requests_spec.rb +177 -0
  177. data/spec/gitlab/client/milestones_spec.rb +82 -0
  178. data/spec/gitlab/client/namespaces_spec.rb +22 -0
  179. data/spec/gitlab/client/notes_spec.rb +205 -0
  180. data/spec/gitlab/client/pipelines_spec.rb +95 -0
  181. data/spec/gitlab/client/projects_spec.rb +603 -0
  182. data/spec/gitlab/client/repositories_spec.rb +109 -0
  183. data/spec/gitlab/client/repository_files_spec.rb +62 -0
  184. data/spec/gitlab/client/runners_spec.rb +185 -0
  185. data/spec/gitlab/client/services_spec.rb +55 -0
  186. data/spec/gitlab/client/snippets_spec.rb +100 -0
  187. data/spec/gitlab/client/system_hooks_spec.rb +69 -0
  188. data/spec/gitlab/client/tags_spec.rb +109 -0
  189. data/spec/gitlab/client/users_spec.rb +418 -0
  190. data/spec/gitlab/error_spec.rb +45 -0
  191. data/spec/gitlab/file_response_spec.rb +33 -0
  192. data/spec/gitlab/help_spec.rb +46 -0
  193. data/spec/gitlab/objectified_hash_spec.rb +48 -0
  194. data/spec/gitlab/page_links_spec.rb +16 -0
  195. data/spec/gitlab/paginated_response_spec.rb +60 -0
  196. data/spec/gitlab/request_spec.rb +73 -0
  197. data/spec/gitlab/shell_history_spec.rb +53 -0
  198. data/spec/gitlab/shell_spec.rb +80 -0
  199. data/spec/gitlab_spec.rb +97 -0
  200. data/spec/spec_helper.rb +74 -0
  201. metadata +476 -0
@@ -0,0 +1,109 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gitlab::Client do
4
+ it { should respond_to :repo_tags }
5
+ it { should respond_to :repo_create_tag }
6
+ it { should respond_to :repo_branches }
7
+ it { should respond_to :repo_branch }
8
+ it { should respond_to :repo_tree }
9
+ it { should respond_to :repo_compare }
10
+
11
+ describe ".tags" do
12
+ before do
13
+ stub_get("/projects/3/repository/tags", "project_tags")
14
+ @tags = Gitlab.tags(3)
15
+ end
16
+
17
+ it "should get the correct resource" do
18
+ expect(a_get("/projects/3/repository/tags")).to have_been_made
19
+ end
20
+
21
+ it "should return a paginated response of repository tags" do
22
+ expect(@tags).to be_a Gitlab::PaginatedResponse
23
+ expect(@tags.first.name).to eq("v2.8.2")
24
+ end
25
+ end
26
+
27
+ describe ".file_contents" do
28
+ before do
29
+ stub_get("/projects/3/repository/blobs/master?filepath=Gemfile", "raw_file")
30
+ @file_contents = Gitlab.file_contents(3, "Gemfile")
31
+ end
32
+
33
+ it "should get the correct resource" do
34
+ expect(a_get("/projects/3/repository/blobs/master?filepath=Gemfile")).to have_been_made
35
+ end
36
+
37
+ it "should return file contents" do
38
+ expect(@file_contents).to eq("source 'https://rubygems.org'\ngem 'rails', '4.1.2'\n")
39
+ end
40
+ end
41
+
42
+ describe ".create_tag" do
43
+ context "when lightweight" do
44
+ before do
45
+ stub_post("/projects/3/repository/tags", "project_tag_lightweight")
46
+ @tag = Gitlab.create_tag(3, 'v1.0.0', '2695effb5807a22ff3d138d593fd856244e155e7')
47
+ end
48
+
49
+ it "should get the correct resource" do
50
+ expect(a_post("/projects/3/repository/tags")).to have_been_made
51
+ end
52
+
53
+ it "should return information about a new repository tag" do
54
+ expect(@tag.name).to eq("v1.0.0")
55
+ expect(@tag.message).to eq(nil)
56
+ end
57
+ end
58
+
59
+ context "when annotated" do
60
+ before do
61
+ stub_post("/projects/3/repository/tags", "project_tag_annotated")
62
+ @tag = Gitlab.create_tag(3, 'v1.1.0', '2695effb5807a22ff3d138d593fd856244e155e7', 'Release 1.1.0')
63
+ end
64
+
65
+ it "should get the correct resource" do
66
+ expect(a_post("/projects/3/repository/tags")).to have_been_made
67
+ end
68
+
69
+ it "should return information about a new repository tag" do
70
+ expect(@tag.name).to eq("v1.1.0")
71
+ expect(@tag.message).to eq("Release 1.1.0")
72
+ end
73
+ end
74
+ end
75
+
76
+ describe ".tree" do
77
+ before do
78
+ stub_get("/projects/3/repository/tree", "tree")
79
+ @tree = Gitlab.tree(3)
80
+ end
81
+
82
+ it "should get the correct resource" do
83
+ expect(a_get("/projects/3/repository/tree")).to have_been_made
84
+ end
85
+
86
+ it "should return a paginated response of repository tree files (root level)" do
87
+ expect(@tree).to be_a Gitlab::PaginatedResponse
88
+ expect(@tree.first.name).to eq("app")
89
+ end
90
+ end
91
+
92
+ describe ".compare" do
93
+ before do
94
+ stub_get("/projects/3/repository/compare", "compare_merge_request_diff").
95
+ with(query: { from: "master", to: "feature" })
96
+ @diff = Gitlab.compare(3, 'master', 'feature')
97
+ end
98
+
99
+ it "should get the correct resource" do
100
+ expect(a_get("/projects/3/repository/compare").
101
+ with(query: { from: "master", to: "feature" })).to have_been_made
102
+ end
103
+
104
+ it "should get diffs of a merge request" do
105
+ expect(@diff.diffs).to be_kind_of Array
106
+ expect(@diff.diffs.last["new_path"]).to eq "files/js/application.js"
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,62 @@
1
+ require "spec_helper"
2
+
3
+ describe Gitlab::Client do
4
+ describe ".get_file" do
5
+ before do
6
+ stub_get("/projects/3/repository/files?file_path=README.md&ref=master", "get_repository_file")
7
+ @file = Gitlab.get_file(3, 'README.md', 'master')
8
+ end
9
+
10
+ it "should create the correct resource" do
11
+ expect(a_get("/projects/3/repository/files?file_path=README.md&ref=master")).to have_been_made
12
+ end
13
+
14
+ it "should return the base64 encoded file" do
15
+ expect(@file.file_path).to eq "README.md"
16
+ expect(@file.ref).to eq "master"
17
+ expect(@file.content).to eq "VGhpcyBpcyBhICpSRUFETUUqIQ==\n"
18
+ end
19
+ end
20
+
21
+ describe ".create_file" do
22
+ let!(:request_stub) { stub_post("/projects/3/repository/files", "repository_file") }
23
+ let!(:file) { Gitlab.create_file(3, "path", "branch", "content", "commit message") }
24
+
25
+ it "should create the correct resource" do
26
+ expect(request_stub).to have_been_made
27
+ end
28
+
29
+ it "should return information about the new file" do
30
+ expect(file.file_path).to eq "path"
31
+ expect(file.branch_name).to eq "branch"
32
+ end
33
+ end
34
+
35
+ describe ".edit_file" do
36
+ let!(:request_stub) { stub_put("/projects/3/repository/files", "repository_file") }
37
+ let!(:file) { Gitlab.edit_file(3, "path", "branch", "content", "commit message") }
38
+
39
+ it "should create the correct resource" do
40
+ expect(request_stub).to have_been_made
41
+ end
42
+
43
+ it "should return information about the new file" do
44
+ expect(file.file_path).to eq "path"
45
+ expect(file.branch_name).to eq "branch"
46
+ end
47
+ end
48
+
49
+ describe ".remove_file" do
50
+ let!(:request_stub) { stub_delete("/projects/3/repository/files", "repository_file") }
51
+ let!(:file) { Gitlab.remove_file(3, "path", "branch", "commit message") }
52
+
53
+ it "should create the correct resource" do
54
+ expect(request_stub).to have_been_made
55
+ end
56
+
57
+ it "should return information about the new file" do
58
+ expect(file.file_path).to eq "path"
59
+ expect(file.branch_name).to eq "branch"
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,185 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gitlab::Client do
4
+
5
+ describe ".runners" do
6
+ before do
7
+ stub_get("/runners", "runners")
8
+ end
9
+
10
+ context 'without scope' do
11
+ before do
12
+ @runner = Gitlab.runners
13
+ end
14
+
15
+ it "should get the correct resource" do
16
+ expect(a_get("/runners")).to have_been_made
17
+ end
18
+
19
+ it "should return a paginated response of runners" do
20
+ expect(@runner).to be_a Gitlab::PaginatedResponse
21
+ expect(@runner.first.id).to eq(6)
22
+ expect(@runner.first.description).to eq('test-1-20150125')
23
+ end
24
+ end
25
+
26
+ context 'with scope' do
27
+ before do
28
+ stub_get("/runners?scope=online", "runners")
29
+ @runner = Gitlab.runners({scope: :online})
30
+ end
31
+
32
+ it "should get the correct resource" do
33
+ expect(a_get("/runners").with(query: { scope: :online })).to have_been_made
34
+ end
35
+
36
+ it "should return a paginated response of runners" do
37
+ expect(@runner).to be_a Gitlab::PaginatedResponse
38
+ expect(@runner.first.id).to eq(6)
39
+ expect(@runner.first.description).to eq('test-1-20150125')
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+ describe ".all_runners" do
46
+ before do
47
+ stub_get("/runners/all", "runners")
48
+ end
49
+
50
+ context 'without scope' do
51
+ before do
52
+ @runner = Gitlab.all_runners
53
+ end
54
+
55
+ it "should get the correct resource" do
56
+ expect(a_get("/runners/all")).to have_been_made
57
+ end
58
+
59
+ it "should return a paginated response of runners" do
60
+ expect(@runner).to be_a Gitlab::PaginatedResponse
61
+ expect(@runner.first.id).to eq(6)
62
+ expect(@runner.first.description).to eq('test-1-20150125')
63
+ end
64
+ end
65
+
66
+ context 'with scope' do
67
+ before do
68
+ stub_get("/runners/all?scope=online", "runners")
69
+ @runner = Gitlab.all_runners({scope: :online})
70
+ end
71
+
72
+ it "should get the correct resource" do
73
+ expect(a_get("/runners/all").with(query: { scope: :online })).to have_been_made
74
+ end
75
+
76
+ it "should return a paginated response of runners" do
77
+ expect(@runner).to be_a Gitlab::PaginatedResponse
78
+ expect(@runner.first.id).to eq(6)
79
+ expect(@runner.first.description).to eq('test-1-20150125')
80
+ end
81
+ end
82
+ end
83
+
84
+ describe ".runner" do
85
+ before do
86
+ stub_get("/runners/6", "runner")
87
+ @runners = Gitlab.runner(6)
88
+ end
89
+
90
+ it "should get the correct resource" do
91
+ expect(a_get("/runners/6")).to have_been_made
92
+ end
93
+
94
+ it "should return a response of a runner" do
95
+ expect(@runners).to be_a Gitlab::ObjectifiedHash
96
+ expect(@runners.id).to eq(6)
97
+ expect(@runners.description).to eq('test-1-20150125')
98
+ end
99
+ end
100
+
101
+ describe ".update_runner" do
102
+ before do
103
+ stub_put("/runners/6", "runner_edit").with(query: { description: "abcefg" })
104
+ @runner = Gitlab.update_runner(6, description: "abcefg" )
105
+ end
106
+
107
+ it "should get the correct resource" do
108
+ expect(a_put("/runners/6").with(query: { description: "abcefg" })).to have_been_made
109
+ end
110
+
111
+ it "should return an updated response of a runner" do
112
+ expect(@runner).to be_a Gitlab::ObjectifiedHash
113
+ expect(@runner.description).to eq('abcefg')
114
+ end
115
+ end
116
+
117
+ describe ".delete_runner" do
118
+ before do
119
+ stub_delete("/runners/6", "runner_delete")
120
+ @runner = Gitlab.delete_runner(6)
121
+ end
122
+
123
+ it "should get the correct resource" do
124
+ expect(a_delete("/runners/6")).to have_been_made
125
+ end
126
+
127
+ it "should return a response of the deleted runner" do
128
+ expect(@runner).to be_a Gitlab::ObjectifiedHash
129
+ expect(@runner.id).to eq(6)
130
+ end
131
+ end
132
+
133
+ describe ".project_runners" do
134
+ before do
135
+ stub_get("/projects/1/runners", "project_runners")
136
+ @runners = Gitlab.project_runners(1)
137
+ end
138
+
139
+ it "should get the correct resource" do
140
+ expect(a_get("/projects/1/runners")).to have_been_made
141
+ end
142
+
143
+ it "should return a paginated response of runners" do
144
+ expect(@runners).to be_a Gitlab::PaginatedResponse
145
+ expect(@runners.first.id).to eq(8)
146
+ expect(@runners.first.description).to eq('test-2-20150125')
147
+ end
148
+ end
149
+
150
+ describe ".project_enable_runner" do
151
+ before do
152
+ stub_post("/projects/1/runners", "runner")
153
+ @runner = Gitlab.project_enable_runner(1, 6)
154
+ end
155
+
156
+ it "should get the correct resource" do
157
+ expect(a_post("/projects/1/runners")).to have_been_made
158
+ end
159
+
160
+ it "should return a response of the enabled runner" do
161
+ expect(@runner).to be_a Gitlab::ObjectifiedHash
162
+ expect(@runner.id).to eq(6)
163
+ expect(@runner.description).to eq('test-1-20150125')
164
+ end
165
+ end
166
+
167
+ describe ".project_disable_runner" do
168
+ before do
169
+ stub_delete("/projects/1/runners/6", "runner")
170
+ @runner = Gitlab.project_disable_runner(1, 6)
171
+ end
172
+
173
+ it "should get the correct resource" do
174
+ expect(a_delete("/projects/1/runners/6")).to have_been_made
175
+ end
176
+
177
+ it "should return a response of the disabled runner" do
178
+ expect(@runner).to be_a Gitlab::ObjectifiedHash
179
+ expect(@runner.id).to eq(6)
180
+ expect(@runner.description).to eq('test-1-20150125')
181
+ end
182
+ end
183
+
184
+
185
+ end
@@ -0,0 +1,55 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gitlab::Client do
4
+ describe ".service" do
5
+ before do
6
+ stub_get("/projects/3/services/redmine", "service")
7
+ @service = Gitlab.service(3, :redmine)
8
+ end
9
+
10
+ it "should get the correct resource" do
11
+ expect(a_get("/projects/3/services/redmine")).to have_been_made
12
+ end
13
+
14
+ it "should return a information about a service of project" do
15
+ expect(@service.id).to eq 38
16
+ expect(@service.title).to eq("Redmine")
17
+ expect(@service.properties.project_url).to eq("https://example.com/projects/test_project/issue")
18
+ end
19
+ end
20
+
21
+ describe ".change_service" do
22
+ before do
23
+ stub_put("/projects/3/services/redmine", "service")
24
+ @service = Gitlab.change_service(3, :redmine, new_issue_url: 'https://example.com/projects/test_project/issues/new',
25
+ project_url: 'https://example.com/projects/test_project/issues',
26
+ issues_url: 'https://example.com/issues/:id')
27
+ end
28
+
29
+ it "should get the correct resource" do
30
+ body = {new_issue_url: 'https://example.com/projects/test_project/issues/new',
31
+ project_url: 'https://example.com/projects/test_project/issues',
32
+ issues_url: 'https://example.com/issues/:id'}
33
+ expect(a_put("/projects/3/services/redmine").with(body: body)).to have_been_made
34
+ end
35
+
36
+ it "should return information about a new service" do
37
+ expect(@service).to be_truthy
38
+ end
39
+ end
40
+
41
+ describe ".delete_servoce" do
42
+ before do
43
+ stub_delete("/projects/3/services/redmine", "service")
44
+ @service = Gitlab.delete_service(3, :redmine)
45
+ end
46
+
47
+ it "should get the correct resource" do
48
+ expect(a_delete("/projects/3/services/redmine")).to have_been_made
49
+ end
50
+
51
+ it "should return information about a deleted service" do
52
+ expect(@service).to be_truthy
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,100 @@
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 "should get the correct resource" do
11
+ expect(a_get("/projects/3/snippets")).to have_been_made
12
+ end
13
+
14
+ it "should return 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 "should get the correct resource" do
27
+ expect(a_get("/projects/3/snippets/1")).to have_been_made
28
+ end
29
+
30
+ it "should return 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')
40
+ end
41
+
42
+ it "should get the correct resource" do
43
+ body = { title: 'API', file_name: 'api.rb', code: 'code' }
44
+ expect(a_post("/projects/3/snippets").with(body: body)).to have_been_made
45
+ end
46
+
47
+ it "should return 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 "should get 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 "should return 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 "should get the correct resource" do
77
+ expect(a_delete("/projects/3/snippets/1")).to have_been_made
78
+ end
79
+
80
+ it "should return 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 "should get the correct resource" do
93
+ expect(a_get("/projects/3/snippets/1/raw")).to have_been_made
94
+ end
95
+
96
+ it "should return 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