gitlab 2.2.0 → 3.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 (47) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +3 -1
  4. data/LICENSE.txt +1 -1
  5. data/README.md +9 -1
  6. data/lib/gitlab.rb +7 -7
  7. data/lib/gitlab/api.rb +1 -1
  8. data/lib/gitlab/client.rb +9 -7
  9. data/lib/gitlab/client/groups.rb +88 -0
  10. data/lib/gitlab/client/issues.rb +13 -16
  11. data/lib/gitlab/client/merge_requests.rb +67 -5
  12. data/lib/gitlab/client/milestones.rb +6 -8
  13. data/lib/gitlab/client/notes.rb +106 -0
  14. data/lib/gitlab/client/projects.rb +98 -17
  15. data/lib/gitlab/client/repositories.rb +4 -6
  16. data/lib/gitlab/client/snippets.rb +22 -15
  17. data/lib/gitlab/configuration.rb +2 -1
  18. data/lib/gitlab/error.rb +9 -0
  19. data/lib/gitlab/request.rb +25 -20
  20. data/lib/gitlab/version.rb +1 -1
  21. data/spec/fixtures/comment_merge_request.json +1 -0
  22. data/spec/fixtures/create_merge_request.json +1 -0
  23. data/spec/fixtures/error_already_exists.json +1 -0
  24. data/spec/fixtures/group.json +60 -0
  25. data/spec/fixtures/group_create.json +1 -0
  26. data/spec/fixtures/group_member.json +1 -0
  27. data/spec/fixtures/group_member_delete.json +1 -0
  28. data/spec/fixtures/group_members.json +1 -0
  29. data/spec/fixtures/groups.json +2 -0
  30. data/spec/fixtures/note.json +1 -0
  31. data/spec/fixtures/notes.json +1 -0
  32. data/spec/fixtures/project.json +1 -1
  33. data/spec/fixtures/project_delete_key.json +8 -0
  34. data/spec/fixtures/project_for_user.json +1 -0
  35. data/spec/fixtures/project_fork_link.json +1 -0
  36. data/spec/fixtures/project_key.json +6 -0
  37. data/spec/fixtures/project_keys.json +6 -0
  38. data/spec/fixtures/update_merge_request.json +1 -0
  39. data/spec/gitlab/client/groups_spec.rb +111 -0
  40. data/spec/gitlab/client/issues_spec.rb +2 -2
  41. data/spec/gitlab/client/merge_requests_spec.rb +57 -0
  42. data/spec/gitlab/client/notes_spec.rb +156 -0
  43. data/spec/gitlab/client/projects_spec.rb +97 -2
  44. data/spec/gitlab/client/users_spec.rb +20 -9
  45. data/spec/gitlab_spec.rb +7 -0
  46. data/spec/spec_helper.rb +2 -2
  47. metadata +55 -31
@@ -50,6 +50,20 @@ describe Gitlab::Client do
50
50
  end
51
51
  end
52
52
 
53
+ describe ".create_project for user" do
54
+ before do
55
+ stub_post("/users", "user")
56
+ @owner = Gitlab.create_user("john@example.com", "pass", {name: 'John Owner'})
57
+ stub_post("/projects/user/#{@owner.id}", "project_for_user")
58
+ @project = Gitlab.create_project('Brute', {:user_id => @owner.id})
59
+ end
60
+
61
+ it "should return information about a created project" do
62
+ @project.name.should == "Brute"
63
+ @project.owner.name.should == "John Owner"
64
+ end
65
+ end
66
+
53
67
  describe ".team_members" do
54
68
  before do
55
69
  stub_get("/projects/3/members", "team_members")
@@ -89,7 +103,7 @@ describe Gitlab::Client do
89
103
 
90
104
  it "should get the correct resource" do
91
105
  a_post("/projects/3/members").
92
- with(:body => {:user_id => '1', :access_level => '40'}).should have_been_made
106
+ with(:body => {:user_id => '1', :access_level => '40'}).should have_been_made
93
107
  end
94
108
 
95
109
  it "should return information about an added team member" do
@@ -105,7 +119,7 @@ describe Gitlab::Client do
105
119
 
106
120
  it "should get the correct resource" do
107
121
  a_put("/projects/3/members/1").
108
- with(:body => {:access_level => '40'}).should have_been_made
122
+ with(:body => {:access_level => '40'}).should have_been_made
109
123
  end
110
124
 
111
125
  it "should return information about an edited team member" do
@@ -205,4 +219,85 @@ describe Gitlab::Client do
205
219
  @hook.url.should == "https://api.example.net/v1/webhooks/ci"
206
220
  end
207
221
  end
222
+
223
+ describe ".make_forked_from" do
224
+ before do
225
+ stub_post("/projects/42/fork/24", "project_fork_link")
226
+ @forked_project_link = Gitlab.make_forked_from(42, 24)
227
+ end
228
+
229
+ it "should get the correct resource" do
230
+ a_post("/projects/42/fork/24").should have_been_made
231
+ end
232
+
233
+ it "should return information about a forked project" do
234
+ @forked_project_link.forked_from_project_id.should == 24
235
+ @forked_project_link.forked_to_project_id.should == 42
236
+ end
237
+ end
238
+
239
+ describe ".remove_forked" do
240
+ before do
241
+ stub_delete("/projects/42/fork", "project_fork_link")
242
+ @forked_project_link = Gitlab.remove_forked(42)
243
+ end
244
+
245
+ it "should be sent to correct resource" do
246
+ a_delete("/projects/42/fork").should have_been_made
247
+ end
248
+
249
+ it "should return information about an unforked project" do
250
+ @forked_project_link.forked_to_project_id.should == 42
251
+ end
252
+ end
253
+
254
+ describe ".deploy_keys" do
255
+ before do
256
+ stub_get("/projects/42/keys", "project_keys")
257
+ @deploy_keys = Gitlab.deploy_keys(42)
258
+ end
259
+
260
+ it "should get the correct resource" do
261
+ a_get("/projects/42/keys").should have_been_made
262
+ end
263
+
264
+ it "should return project deploy keys" do
265
+ @deploy_keys.should be_an Array
266
+ @deploy_keys.first.id.should eq 2
267
+ @deploy_keys.first.title.should eq "Key Title"
268
+ @deploy_keys.first.key.should match(/ssh-rsa/)
269
+ end
270
+ end
271
+
272
+ describe ".deploy_key" do
273
+ before do
274
+ stub_get("/projects/42/keys/2", "project_key")
275
+ @deploy_key = Gitlab.deploy_key(42, 2)
276
+ end
277
+
278
+ it "should get the correct resource" do
279
+ a_get("/projects/42/keys/2").should have_been_made
280
+ end
281
+
282
+ it "should return project deploy key" do
283
+ @deploy_key.id.should eq 2
284
+ @deploy_key.title.should eq "Key Title"
285
+ @deploy_key.key.should match(/ssh-rsa/)
286
+ end
287
+ end
288
+
289
+ describe ".delete_deploy_key" do
290
+ before do
291
+ stub_delete("/projects/42/keys/2", "project_delete_key")
292
+ @deploy_key = Gitlab.delete_deploy_key(42, 2)
293
+ end
294
+
295
+ it "should get the correct resource" do
296
+ a_delete("/projects/42/keys/2").should have_been_made
297
+ end
298
+
299
+ it "should return information about a deleted key" do
300
+ @deploy_key.id.should == 2
301
+ end
302
+ end
208
303
  end
@@ -50,18 +50,29 @@ describe Gitlab::Client do
50
50
  end
51
51
 
52
52
  describe ".create_user" do
53
- before do
54
- stub_post("/users", "user")
55
- @user = Gitlab.create_user("email", "pass")
56
- end
53
+ context "when successful request" do
54
+ before do
55
+ stub_post("/users", "user")
56
+ @user = Gitlab.create_user("email", "pass")
57
+ end
57
58
 
58
- it "should get the correct resource" do
59
- body = {:email => "email", :password => "pass", :name => "email"}
60
- a_post("/users").with(:body => body).should have_been_made
59
+ it "should get the correct resource" do
60
+ body = {:email => "email", :password => "pass", :name => "email"}
61
+ a_post("/users").with(:body => body).should have_been_made
62
+ end
63
+
64
+ it "should return information about a created user" do
65
+ @user.email.should == "john@example.com"
66
+ end
61
67
  end
62
68
 
63
- it "should return information about a created user" do
64
- @user.email.should == "john@example.com"
69
+ context "when bad request" do
70
+ it "should throw an exception" do
71
+ stub_post("/users", "error_already_exists", 409)
72
+ expect {
73
+ Gitlab.create_user("email", "pass")
74
+ }.to raise_error(Gitlab::Error::Conflict, "Server responded with code 409, message: 409 Already exists. Request URI: #{Gitlab.endpoint}/users")
75
+ end
65
76
  end
66
77
  end
67
78
 
@@ -23,6 +23,13 @@ describe Gitlab do
23
23
  end
24
24
  end
25
25
 
26
+ describe ".sudo=" do
27
+ it "should set sudo" do
28
+ Gitlab.sudo = 'user'
29
+ Gitlab.sudo.should == 'user'
30
+ end
31
+ end
32
+
26
33
  describe ".user_agent" do
27
34
  it "should return default user_agent" do
28
35
  Gitlab.user_agent.should == Gitlab::Configuration::DEFAULT_USER_AGENT
@@ -27,10 +27,10 @@ def a_get(path)
27
27
  end
28
28
 
29
29
  # POST
30
- def stub_post(path, fixture)
30
+ def stub_post(path, fixture, status_code=200)
31
31
  stub_request(:post, "#{Gitlab.endpoint}#{path}").
32
32
  with(:query => {:private_token => Gitlab.private_token}).
33
- to_return(:body => load_fixture(fixture))
33
+ to_return(:body => load_fixture(fixture), :status => status_code)
34
34
  end
35
35
 
36
36
  def a_post(path)
metadata CHANGED
@@ -1,78 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
5
- prerelease:
4
+ version: 3.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Nihad Abbasov
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-11-22 00:00:00.000000000 Z
11
+ date: 2013-10-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: httparty
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rspec
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: webmock
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  description: Ruby client for GitLab API
@@ -92,9 +83,11 @@ files:
92
83
  - lib/gitlab.rb
93
84
  - lib/gitlab/api.rb
94
85
  - lib/gitlab/client.rb
86
+ - lib/gitlab/client/groups.rb
95
87
  - lib/gitlab/client/issues.rb
96
88
  - lib/gitlab/client/merge_requests.rb
97
89
  - lib/gitlab/client/milestones.rb
90
+ - lib/gitlab/client/notes.rb
98
91
  - lib/gitlab/client/projects.rb
99
92
  - lib/gitlab/client/repositories.rb
100
93
  - lib/gitlab/client/snippets.rb
@@ -104,6 +97,15 @@ files:
104
97
  - lib/gitlab/objectified_hash.rb
105
98
  - lib/gitlab/request.rb
106
99
  - lib/gitlab/version.rb
100
+ - spec/fixtures/comment_merge_request.json
101
+ - spec/fixtures/create_merge_request.json
102
+ - spec/fixtures/error_already_exists.json
103
+ - spec/fixtures/group.json
104
+ - spec/fixtures/group_create.json
105
+ - spec/fixtures/group_member.json
106
+ - spec/fixtures/group_member_delete.json
107
+ - spec/fixtures/group_members.json
108
+ - spec/fixtures/groups.json
107
109
  - spec/fixtures/issue.json
108
110
  - spec/fixtures/issues.json
109
111
  - spec/fixtures/key.json
@@ -112,13 +114,20 @@ files:
112
114
  - spec/fixtures/merge_requests.json
113
115
  - spec/fixtures/milestone.json
114
116
  - spec/fixtures/milestones.json
117
+ - spec/fixtures/note.json
118
+ - spec/fixtures/notes.json
115
119
  - spec/fixtures/project.json
116
120
  - spec/fixtures/project_branch.json
117
121
  - spec/fixtures/project_branches.json
118
122
  - spec/fixtures/project_commits.json
123
+ - spec/fixtures/project_delete_key.json
124
+ - spec/fixtures/project_for_user.json
125
+ - spec/fixtures/project_fork_link.json
119
126
  - spec/fixtures/project_hook.json
120
127
  - spec/fixtures/project_hooks.json
121
128
  - spec/fixtures/project_issues.json
129
+ - spec/fixtures/project_key.json
130
+ - spec/fixtures/project_keys.json
122
131
  - spec/fixtures/project_tags.json
123
132
  - spec/fixtures/projects.json
124
133
  - spec/fixtures/session.json
@@ -126,11 +135,14 @@ files:
126
135
  - spec/fixtures/snippets.json
127
136
  - spec/fixtures/team_member.json
128
137
  - spec/fixtures/team_members.json
138
+ - spec/fixtures/update_merge_request.json
129
139
  - spec/fixtures/user.json
130
140
  - spec/fixtures/users.json
141
+ - spec/gitlab/client/groups_spec.rb
131
142
  - spec/gitlab/client/issues_spec.rb
132
143
  - spec/gitlab/client/merge_requests_spec.rb
133
144
  - spec/gitlab/client/milestones_spec.rb
145
+ - spec/gitlab/client/notes_spec.rb
134
146
  - spec/gitlab/client/projects_spec.rb
135
147
  - spec/gitlab/client/repositories_spec.rb
136
148
  - spec/gitlab/client/snippets_spec.rb
@@ -139,35 +151,37 @@ files:
139
151
  - spec/spec_helper.rb
140
152
  homepage: https://github.com/narkoz/gitlab
141
153
  licenses: []
154
+ metadata: {}
142
155
  post_install_message:
143
156
  rdoc_options: []
144
157
  require_paths:
145
158
  - lib
146
159
  required_ruby_version: !ruby/object:Gem::Requirement
147
- none: false
148
160
  requirements:
149
- - - ! '>='
161
+ - - '>='
150
162
  - !ruby/object:Gem::Version
151
163
  version: '0'
152
- segments:
153
- - 0
154
- hash: 2963667120197220798
155
164
  required_rubygems_version: !ruby/object:Gem::Requirement
156
- none: false
157
165
  requirements:
158
- - - ! '>='
166
+ - - '>='
159
167
  - !ruby/object:Gem::Version
160
168
  version: '0'
161
- segments:
162
- - 0
163
- hash: 2963667120197220798
164
169
  requirements: []
165
170
  rubyforge_project:
166
- rubygems_version: 1.8.24
171
+ rubygems_version: 2.1.7
167
172
  signing_key:
168
- specification_version: 3
173
+ specification_version: 4
169
174
  summary: A Ruby wrapper for the GitLab API
170
175
  test_files:
176
+ - spec/fixtures/comment_merge_request.json
177
+ - spec/fixtures/create_merge_request.json
178
+ - spec/fixtures/error_already_exists.json
179
+ - spec/fixtures/group.json
180
+ - spec/fixtures/group_create.json
181
+ - spec/fixtures/group_member.json
182
+ - spec/fixtures/group_member_delete.json
183
+ - spec/fixtures/group_members.json
184
+ - spec/fixtures/groups.json
171
185
  - spec/fixtures/issue.json
172
186
  - spec/fixtures/issues.json
173
187
  - spec/fixtures/key.json
@@ -176,13 +190,20 @@ test_files:
176
190
  - spec/fixtures/merge_requests.json
177
191
  - spec/fixtures/milestone.json
178
192
  - spec/fixtures/milestones.json
193
+ - spec/fixtures/note.json
194
+ - spec/fixtures/notes.json
179
195
  - spec/fixtures/project.json
180
196
  - spec/fixtures/project_branch.json
181
197
  - spec/fixtures/project_branches.json
182
198
  - spec/fixtures/project_commits.json
199
+ - spec/fixtures/project_delete_key.json
200
+ - spec/fixtures/project_for_user.json
201
+ - spec/fixtures/project_fork_link.json
183
202
  - spec/fixtures/project_hook.json
184
203
  - spec/fixtures/project_hooks.json
185
204
  - spec/fixtures/project_issues.json
205
+ - spec/fixtures/project_key.json
206
+ - spec/fixtures/project_keys.json
186
207
  - spec/fixtures/project_tags.json
187
208
  - spec/fixtures/projects.json
188
209
  - spec/fixtures/session.json
@@ -190,11 +211,14 @@ test_files:
190
211
  - spec/fixtures/snippets.json
191
212
  - spec/fixtures/team_member.json
192
213
  - spec/fixtures/team_members.json
214
+ - spec/fixtures/update_merge_request.json
193
215
  - spec/fixtures/user.json
194
216
  - spec/fixtures/users.json
217
+ - spec/gitlab/client/groups_spec.rb
195
218
  - spec/gitlab/client/issues_spec.rb
196
219
  - spec/gitlab/client/merge_requests_spec.rb
197
220
  - spec/gitlab/client/milestones_spec.rb
221
+ - spec/gitlab/client/notes_spec.rb
198
222
  - spec/gitlab/client/projects_spec.rb
199
223
  - spec/gitlab/client/repositories_spec.rb
200
224
  - spec/gitlab/client/snippets_spec.rb