gitlab-akerl 4.0.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 (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