gitlab 3.0.0 → 3.1.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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +1 -0
- data/LICENSE.txt +1 -1
- data/README.md +28 -3
- data/bin/gitlab +7 -0
- data/gitlab.gemspec +3 -2
- data/lib/gitlab.rb +8 -0
- data/lib/gitlab/api.rb +1 -1
- data/lib/gitlab/cli.rb +57 -0
- data/lib/gitlab/cli_helpers.rb +141 -0
- data/lib/gitlab/client.rb +8 -6
- data/lib/gitlab/client/branches.rb +79 -0
- data/lib/gitlab/client/merge_requests.rb +15 -2
- data/lib/gitlab/client/projects.rb +25 -4
- data/lib/gitlab/client/repositories.rb +22 -23
- data/lib/gitlab/client/system_hooks.rb +58 -0
- data/lib/gitlab/client/users.rb +17 -0
- data/lib/gitlab/configuration.rb +3 -3
- data/lib/gitlab/objectified_hash.rb +8 -2
- data/lib/gitlab/request.rb +21 -5
- data/lib/gitlab/version.rb +1 -1
- data/spec/fixtures/branch.json +1 -0
- data/spec/fixtures/{project_branches.json → branches.json} +0 -0
- data/spec/fixtures/create_branch.json +1 -0
- data/spec/fixtures/merge_request_comments.json +1 -0
- data/spec/fixtures/project_commit.json +13 -0
- data/spec/fixtures/project_commit_diff.json +10 -0
- data/spec/fixtures/{project_branch.json → protect_branch.json} +1 -1
- data/spec/fixtures/system_hook.json +1 -0
- data/spec/fixtures/system_hook_test.json +1 -0
- data/spec/fixtures/system_hooks.json +1 -0
- data/spec/fixtures/unprotect_branch.json +1 -0
- data/spec/gitlab/cli_spec.rb +80 -0
- data/spec/gitlab/client/branches_spec.rb +103 -0
- data/spec/gitlab/client/groups_spec.rb +21 -21
- data/spec/gitlab/client/issues_spec.rb +26 -26
- data/spec/gitlab/client/merge_requests_spec.rb +45 -13
- data/spec/gitlab/client/milestones_spec.rb +11 -11
- data/spec/gitlab/client/notes_spec.rb +30 -30
- data/spec/gitlab/client/projects_spec.rb +93 -59
- data/spec/gitlab/client/repositories_spec.rb +28 -25
- data/spec/gitlab/client/snippets_spec.rb +16 -16
- data/spec/gitlab/client/system_hooks_spec.rb +69 -0
- data/spec/gitlab/client/users_spec.rb +60 -24
- data/spec/gitlab/objectified_hash_spec.rb +23 -0
- data/spec/gitlab/request_spec.rb +48 -0
- data/spec/gitlab_spec.rb +16 -7
- data/spec/spec_helper.rb +19 -8
- metadata +70 -22
@@ -9,12 +9,12 @@ describe Gitlab::Client do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should get the correct resource" do
|
12
|
-
a_get("/projects/3/notes").
|
12
|
+
expect(a_get("/projects/3/notes")).to have_been_made
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should return an array of notes" do
|
16
|
-
@notes.
|
17
|
-
@notes.first.author.name.
|
16
|
+
expect(@notes).to be_an Array
|
17
|
+
expect(@notes.first.author.name).to eq("John Smith")
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -25,12 +25,12 @@ describe Gitlab::Client do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should get the correct resource" do
|
28
|
-
a_get("/projects/3/issues/7/notes").
|
28
|
+
expect(a_get("/projects/3/issues/7/notes")).to have_been_made
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should return an array of notes" do
|
32
|
-
@notes.
|
33
|
-
@notes.first.author.name.
|
32
|
+
expect(@notes).to be_an Array
|
33
|
+
expect(@notes.first.author.name).to eq("John Smith")
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -41,12 +41,12 @@ describe Gitlab::Client do
|
|
41
41
|
end
|
42
42
|
|
43
43
|
it "should get the correct resource" do
|
44
|
-
a_get("/projects/3/snippets/7/notes").
|
44
|
+
expect(a_get("/projects/3/snippets/7/notes")).to have_been_made
|
45
45
|
end
|
46
46
|
|
47
47
|
it "should return an array of notes" do
|
48
|
-
@notes.
|
49
|
-
@notes.first.author.name.
|
48
|
+
expect(@notes).to be_an Array
|
49
|
+
expect(@notes.first.author.name).to eq("John Smith")
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -59,12 +59,12 @@ describe Gitlab::Client do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
it "should get the correct resource" do
|
62
|
-
a_get("/projects/3/notes/1201").
|
62
|
+
expect(a_get("/projects/3/notes/1201")).to have_been_made
|
63
63
|
end
|
64
64
|
|
65
65
|
it "should return information about a note" do
|
66
|
-
@note.body.
|
67
|
-
@note.author.name.
|
66
|
+
expect(@note.body).to eq("The solution is rather tricky")
|
67
|
+
expect(@note.author.name).to eq("John Smith")
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
@@ -75,12 +75,12 @@ describe Gitlab::Client do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
it "should get the correct resource" do
|
78
|
-
a_get("/projects/3/issues/7/notes/1201").
|
78
|
+
expect(a_get("/projects/3/issues/7/notes/1201")).to have_been_made
|
79
79
|
end
|
80
80
|
|
81
81
|
it "should return information about a note" do
|
82
|
-
@note.body.
|
83
|
-
@note.author.name.
|
82
|
+
expect(@note.body).to eq("The solution is rather tricky")
|
83
|
+
expect(@note.author.name).to eq("John Smith")
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
@@ -91,12 +91,12 @@ describe Gitlab::Client do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
it "should get the correct resource" do
|
94
|
-
a_get("/projects/3/snippets/7/notes/1201").
|
94
|
+
expect(a_get("/projects/3/snippets/7/notes/1201")).to have_been_made
|
95
95
|
end
|
96
96
|
|
97
97
|
it "should return information about a note" do
|
98
|
-
@note.body.
|
99
|
-
@note.author.name.
|
98
|
+
expect(@note.body).to eq("The solution is rather tricky")
|
99
|
+
expect(@note.author.name).to eq("John Smith")
|
100
100
|
end
|
101
101
|
end
|
102
102
|
end
|
@@ -109,13 +109,13 @@ describe Gitlab::Client do
|
|
109
109
|
end
|
110
110
|
|
111
111
|
it "should get the correct resource" do
|
112
|
-
a_post("/projects/3/notes").
|
113
|
-
with(:body => {:body => 'The solution is rather tricky'}).
|
112
|
+
expect(a_post("/projects/3/notes").
|
113
|
+
with(:body => {:body => 'The solution is rather tricky'})).to have_been_made
|
114
114
|
end
|
115
115
|
|
116
116
|
it "should return information about a created note" do
|
117
|
-
@note.body.
|
118
|
-
@note.author.name.
|
117
|
+
expect(@note.body).to eq("The solution is rather tricky")
|
118
|
+
expect(@note.author.name).to eq("John Smith")
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
@@ -126,13 +126,13 @@ describe Gitlab::Client do
|
|
126
126
|
end
|
127
127
|
|
128
128
|
it "should get the correct resource" do
|
129
|
-
a_post("/projects/3/issues/7/notes").
|
130
|
-
with(:body => {:body => 'The solution is rather tricky'}).
|
129
|
+
expect(a_post("/projects/3/issues/7/notes").
|
130
|
+
with(:body => {:body => 'The solution is rather tricky'})).to have_been_made
|
131
131
|
end
|
132
132
|
|
133
133
|
it "should return information about a created note" do
|
134
|
-
@note.body.
|
135
|
-
@note.author.name.
|
134
|
+
expect(@note.body).to eq("The solution is rather tricky")
|
135
|
+
expect(@note.author.name).to eq("John Smith")
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
@@ -143,13 +143,13 @@ describe Gitlab::Client do
|
|
143
143
|
end
|
144
144
|
|
145
145
|
it "should get the correct resource" do
|
146
|
-
a_post("/projects/3/snippets/7/notes").
|
147
|
-
with(:body => {:body => 'The solution is rather tricky'}).
|
146
|
+
expect(a_post("/projects/3/snippets/7/notes").
|
147
|
+
with(:body => {:body => 'The solution is rather tricky'})).to have_been_made
|
148
148
|
end
|
149
149
|
|
150
150
|
it "should return information about a created note" do
|
151
|
-
@note.body.
|
152
|
-
@note.author.name.
|
151
|
+
expect(@note.body).to eq("The solution is rather tricky")
|
152
|
+
expect(@note.author.name).to eq("John Smith")
|
153
153
|
end
|
154
154
|
end
|
155
155
|
end
|
@@ -8,13 +8,13 @@ describe Gitlab::Client do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should get the correct resource" do
|
11
|
-
a_get("/projects").
|
11
|
+
expect(a_get("/projects")).to have_been_made
|
12
12
|
end
|
13
13
|
|
14
14
|
it "should return an array of projects" do
|
15
|
-
@projects.
|
16
|
-
@projects.first.name.
|
17
|
-
@projects.first.owner.name.
|
15
|
+
expect(@projects).to be_an Array
|
16
|
+
expect(@projects.first.name).to eq("Brute")
|
17
|
+
expect(@projects.first.owner.name).to eq("John Smith")
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -25,12 +25,12 @@ describe Gitlab::Client do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should get the correct resource" do
|
28
|
-
a_get("/projects/3").
|
28
|
+
expect(a_get("/projects/3")).to have_been_made
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should return information about a project" do
|
32
|
-
@project.name.
|
33
|
-
@project.owner.name.
|
32
|
+
expect(@project.name).to eq("Gitlab")
|
33
|
+
expect(@project.owner.name).to eq("John Smith")
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -41,12 +41,12 @@ describe Gitlab::Client do
|
|
41
41
|
end
|
42
42
|
|
43
43
|
it "should get the correct resource" do
|
44
|
-
a_post("/projects").
|
44
|
+
expect(a_post("/projects")).to have_been_made
|
45
45
|
end
|
46
46
|
|
47
47
|
it "should return information about a created project" do
|
48
|
-
@project.name.
|
49
|
-
@project.owner.name.
|
48
|
+
expect(@project.name).to eq("Gitlab")
|
49
|
+
expect(@project.owner.name).to eq("John Smith")
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -59,8 +59,24 @@ describe Gitlab::Client do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
it "should return information about a created project" do
|
62
|
-
@project.name.
|
63
|
-
@project.owner.name.
|
62
|
+
expect(@project.name).to eq("Brute")
|
63
|
+
expect(@project.owner.name).to eq("John Owner")
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe ".delete_project" do
|
68
|
+
before do
|
69
|
+
stub_delete("/projects/Gitlab", "project")
|
70
|
+
@project = Gitlab.delete_project('Gitlab')
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should get the correct resource" do
|
74
|
+
expect(a_delete("/projects/Gitlab")).to have_been_made
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should return information about a deleted project" do
|
78
|
+
expect(@project.name).to eq("Gitlab")
|
79
|
+
expect(@project.owner.name).to eq("John Smith")
|
64
80
|
end
|
65
81
|
end
|
66
82
|
|
@@ -71,12 +87,12 @@ describe Gitlab::Client do
|
|
71
87
|
end
|
72
88
|
|
73
89
|
it "should get the correct resource" do
|
74
|
-
a_get("/projects/3/members").
|
90
|
+
expect(a_get("/projects/3/members")).to have_been_made
|
75
91
|
end
|
76
92
|
|
77
93
|
it "should return an array of team members" do
|
78
|
-
@team_members.
|
79
|
-
@team_members.first.name.
|
94
|
+
expect(@team_members).to be_an Array
|
95
|
+
expect(@team_members.first.name).to eq("John Smith")
|
80
96
|
end
|
81
97
|
end
|
82
98
|
|
@@ -87,11 +103,11 @@ describe Gitlab::Client do
|
|
87
103
|
end
|
88
104
|
|
89
105
|
it "should get the correct resource" do
|
90
|
-
a_get("/projects/3/members/1").
|
106
|
+
expect(a_get("/projects/3/members/1")).to have_been_made
|
91
107
|
end
|
92
108
|
|
93
109
|
it "should return information about a team member" do
|
94
|
-
@team_member.name.
|
110
|
+
expect(@team_member.name).to eq("John Smith")
|
95
111
|
end
|
96
112
|
end
|
97
113
|
|
@@ -102,12 +118,12 @@ describe Gitlab::Client do
|
|
102
118
|
end
|
103
119
|
|
104
120
|
it "should get the correct resource" do
|
105
|
-
a_post("/projects/3/members").
|
106
|
-
with(:body => {:user_id => '1', :access_level => '40'}).
|
121
|
+
expect(a_post("/projects/3/members").
|
122
|
+
with(:body => {:user_id => '1', :access_level => '40'})).to have_been_made
|
107
123
|
end
|
108
124
|
|
109
125
|
it "should return information about an added team member" do
|
110
|
-
@team_member.name.
|
126
|
+
expect(@team_member.name).to eq("John Smith")
|
111
127
|
end
|
112
128
|
end
|
113
129
|
|
@@ -118,12 +134,12 @@ describe Gitlab::Client do
|
|
118
134
|
end
|
119
135
|
|
120
136
|
it "should get the correct resource" do
|
121
|
-
a_put("/projects/3/members/1").
|
122
|
-
with(:body => {:access_level => '40'}).
|
137
|
+
expect(a_put("/projects/3/members/1").
|
138
|
+
with(:body => {:access_level => '40'})).to have_been_made
|
123
139
|
end
|
124
140
|
|
125
141
|
it "should return information about an edited team member" do
|
126
|
-
@team_member.name.
|
142
|
+
expect(@team_member.name).to eq("John Smith")
|
127
143
|
end
|
128
144
|
end
|
129
145
|
|
@@ -134,11 +150,11 @@ describe Gitlab::Client do
|
|
134
150
|
end
|
135
151
|
|
136
152
|
it "should get the correct resource" do
|
137
|
-
a_delete("/projects/3/members/1").
|
153
|
+
expect(a_delete("/projects/3/members/1")).to have_been_made
|
138
154
|
end
|
139
155
|
|
140
156
|
it "should return information about a removed team member" do
|
141
|
-
@team_member.name.
|
157
|
+
expect(@team_member.name).to eq("John Smith")
|
142
158
|
end
|
143
159
|
end
|
144
160
|
|
@@ -149,12 +165,12 @@ describe Gitlab::Client do
|
|
149
165
|
end
|
150
166
|
|
151
167
|
it "should get the correct resource" do
|
152
|
-
a_get("/projects/1/hooks").
|
168
|
+
expect(a_get("/projects/1/hooks")).to have_been_made
|
153
169
|
end
|
154
170
|
|
155
171
|
it "should return an array of hooks" do
|
156
|
-
@hooks.
|
157
|
-
@hooks.first.url.
|
172
|
+
expect(@hooks).to be_an Array
|
173
|
+
expect(@hooks.first.url).to eq("https://api.example.net/v1/webhooks/ci")
|
158
174
|
end
|
159
175
|
end
|
160
176
|
|
@@ -165,27 +181,45 @@ describe Gitlab::Client do
|
|
165
181
|
end
|
166
182
|
|
167
183
|
it "should get the correct resource" do
|
168
|
-
a_get("/projects/1/hooks/1").
|
184
|
+
expect(a_get("/projects/1/hooks/1")).to have_been_made
|
169
185
|
end
|
170
186
|
|
171
187
|
it "should return information about a hook" do
|
172
|
-
@hook.url.
|
188
|
+
expect(@hook.url).to eq("https://api.example.net/v1/webhooks/ci")
|
173
189
|
end
|
174
190
|
end
|
175
191
|
|
176
192
|
describe ".add_project_hook" do
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
193
|
+
context "without specified events" do
|
194
|
+
before do
|
195
|
+
stub_post("/projects/1/hooks", "project_hook")
|
196
|
+
@hook = Gitlab.add_project_hook(1, "https://api.example.net/v1/webhooks/ci")
|
197
|
+
end
|
181
198
|
|
182
|
-
|
183
|
-
|
184
|
-
|
199
|
+
it "should get the correct resource" do
|
200
|
+
body = {:url => "https://api.example.net/v1/webhooks/ci"}
|
201
|
+
expect(a_post("/projects/1/hooks").with(:body => body)).to have_been_made
|
202
|
+
end
|
203
|
+
|
204
|
+
it "should return information about an added hook" do
|
205
|
+
expect(@hook.url).to eq("https://api.example.net/v1/webhooks/ci")
|
206
|
+
end
|
185
207
|
end
|
186
208
|
|
187
|
-
|
188
|
-
|
209
|
+
context "with specified events" do
|
210
|
+
before do
|
211
|
+
stub_post("/projects/1/hooks", "project_hook")
|
212
|
+
@hook = Gitlab.add_project_hook(1, "https://api.example.net/v1/webhooks/ci", push_events: true, merge_requests_events: true)
|
213
|
+
end
|
214
|
+
|
215
|
+
it "should get the correct resource" do
|
216
|
+
body = {:url => "https://api.example.net/v1/webhooks/ci", push_events: "true", merge_requests_events: "true"}
|
217
|
+
expect(a_post("/projects/1/hooks").with(:body => body)).to have_been_made
|
218
|
+
end
|
219
|
+
|
220
|
+
it "should return information about an added hook" do
|
221
|
+
expect(@hook.url).to eq("https://api.example.net/v1/webhooks/ci")
|
222
|
+
end
|
189
223
|
end
|
190
224
|
end
|
191
225
|
|
@@ -197,11 +231,11 @@ describe Gitlab::Client do
|
|
197
231
|
|
198
232
|
it "should get the correct resource" do
|
199
233
|
body = {:url => "https://api.example.net/v1/webhooks/ci"}
|
200
|
-
a_put("/projects/1/hooks/1").with(:body => body).
|
234
|
+
expect(a_put("/projects/1/hooks/1").with(:body => body)).to have_been_made
|
201
235
|
end
|
202
236
|
|
203
237
|
it "should return information about an edited hook" do
|
204
|
-
@hook.url.
|
238
|
+
expect(@hook.url).to eq("https://api.example.net/v1/webhooks/ci")
|
205
239
|
end
|
206
240
|
end
|
207
241
|
|
@@ -212,11 +246,11 @@ describe Gitlab::Client do
|
|
212
246
|
end
|
213
247
|
|
214
248
|
it "should get the correct resource" do
|
215
|
-
a_delete("/projects/1/hooks/1").
|
249
|
+
expect(a_delete("/projects/1/hooks/1")).to have_been_made
|
216
250
|
end
|
217
251
|
|
218
252
|
it "should return information about a deleted hook" do
|
219
|
-
@hook.url.
|
253
|
+
expect(@hook.url).to eq("https://api.example.net/v1/webhooks/ci")
|
220
254
|
end
|
221
255
|
end
|
222
256
|
|
@@ -227,12 +261,12 @@ describe Gitlab::Client do
|
|
227
261
|
end
|
228
262
|
|
229
263
|
it "should get the correct resource" do
|
230
|
-
a_post("/projects/42/fork/24").
|
264
|
+
expect(a_post("/projects/42/fork/24")).to have_been_made
|
231
265
|
end
|
232
266
|
|
233
267
|
it "should return information about a forked project" do
|
234
|
-
@forked_project_link.forked_from_project_id.
|
235
|
-
@forked_project_link.forked_to_project_id.
|
268
|
+
expect(@forked_project_link.forked_from_project_id).to eq(24)
|
269
|
+
expect(@forked_project_link.forked_to_project_id).to eq(42)
|
236
270
|
end
|
237
271
|
end
|
238
272
|
|
@@ -243,11 +277,11 @@ describe Gitlab::Client do
|
|
243
277
|
end
|
244
278
|
|
245
279
|
it "should be sent to correct resource" do
|
246
|
-
a_delete("/projects/42/fork").
|
280
|
+
expect(a_delete("/projects/42/fork")).to have_been_made
|
247
281
|
end
|
248
282
|
|
249
283
|
it "should return information about an unforked project" do
|
250
|
-
@forked_project_link.forked_to_project_id.
|
284
|
+
expect(@forked_project_link.forked_to_project_id).to eq(42)
|
251
285
|
end
|
252
286
|
end
|
253
287
|
|
@@ -258,14 +292,14 @@ describe Gitlab::Client do
|
|
258
292
|
end
|
259
293
|
|
260
294
|
it "should get the correct resource" do
|
261
|
-
a_get("/projects/42/keys").
|
295
|
+
expect(a_get("/projects/42/keys")).to have_been_made
|
262
296
|
end
|
263
297
|
|
264
298
|
it "should return project deploy keys" do
|
265
|
-
@deploy_keys.
|
266
|
-
@deploy_keys.first.id.
|
267
|
-
@deploy_keys.first.title.
|
268
|
-
@deploy_keys.first.key.
|
299
|
+
expect(@deploy_keys).to be_an Array
|
300
|
+
expect(@deploy_keys.first.id).to eq 2
|
301
|
+
expect(@deploy_keys.first.title).to eq "Key Title"
|
302
|
+
expect(@deploy_keys.first.key).to match(/ssh-rsa/)
|
269
303
|
end
|
270
304
|
end
|
271
305
|
|
@@ -276,13 +310,13 @@ describe Gitlab::Client do
|
|
276
310
|
end
|
277
311
|
|
278
312
|
it "should get the correct resource" do
|
279
|
-
a_get("/projects/42/keys/2").
|
313
|
+
expect(a_get("/projects/42/keys/2")).to have_been_made
|
280
314
|
end
|
281
315
|
|
282
316
|
it "should return project deploy key" do
|
283
|
-
@deploy_key.id.
|
284
|
-
@deploy_key.title.
|
285
|
-
@deploy_key.key.
|
317
|
+
expect(@deploy_key.id).to eq 2
|
318
|
+
expect(@deploy_key.title).to eq "Key Title"
|
319
|
+
expect(@deploy_key.key).to match(/ssh-rsa/)
|
286
320
|
end
|
287
321
|
end
|
288
322
|
|
@@ -293,11 +327,11 @@ describe Gitlab::Client do
|
|
293
327
|
end
|
294
328
|
|
295
329
|
it "should get the correct resource" do
|
296
|
-
a_delete("/projects/42/keys/2").
|
330
|
+
expect(a_delete("/projects/42/keys/2")).to have_been_made
|
297
331
|
end
|
298
332
|
|
299
333
|
it "should return information about a deleted key" do
|
300
|
-
@deploy_key.id.
|
334
|
+
expect(@deploy_key.id).to eq(2)
|
301
335
|
end
|
302
336
|
end
|
303
337
|
end
|