gerry 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gerry/client/access.rb +17 -0
- data/lib/gerry/client/groups.rb +16 -1
- data/lib/gerry/client/projects.rb +25 -3
- data/lib/gerry/client/request.rb +16 -10
- data/lib/gerry/client.rb +8 -6
- data/lib/gerry/version.rb +1 -1
- data/spec/access_spec.rb +15 -0
- data/spec/fixtures/access_rights.json +250 -0
- data/spec/fixtures/project_head.json +2 -0
- data/spec/fixtures/projects.json +2 -2
- data/spec/projects_spec.rb +39 -11
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7d5a26248ca8569e79405d01127cc7e15a3e985
|
4
|
+
data.tar.gz: 1af2e09f12d470b7effd4ca6349fd926027345a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fa7b2004e3ee74dfb975fab016e168919f3e7192e4701d53d766f1b23def124fac756b8eaf4f8693fe2add30726e25b68980a8e96fd0955260e9a90a538ad6d
|
7
|
+
data.tar.gz: 2d7c4734217f7197607532c0f0d281cbf151c91496bb02f86222a0e5803130fccfe5aff6b1c16b4749fb156244eb46f40c7c3858ad64a98f5061f0a467e87c7f
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'erb'
|
2
|
+
|
3
|
+
module Gerry
|
4
|
+
class Client
|
5
|
+
module Access
|
6
|
+
# Get access rights for the specified project
|
7
|
+
#
|
8
|
+
# @param [VarArgs] projects the project names
|
9
|
+
# @return [Hash] the list of access rights
|
10
|
+
def access(*projects)
|
11
|
+
projects = projects.flatten.map { |name| ERB::Util.url_encode(name) }
|
12
|
+
url = "/access/?project=#{projects.join('&project=')}"
|
13
|
+
get(url)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/gerry/client/groups.rb
CHANGED
@@ -13,9 +13,24 @@ module Gerry
|
|
13
13
|
|
14
14
|
# Get all members for a group
|
15
15
|
#
|
16
|
+
# @param [Array] options the query parameters
|
16
17
|
# @return [Array] the members
|
17
|
-
def group_members(group_id)
|
18
|
+
def group_members(group_id, options = [])
|
18
19
|
url = "/groups/#{group_id}/members/"
|
20
|
+
|
21
|
+
if options.empty?
|
22
|
+
return get(url)
|
23
|
+
end
|
24
|
+
|
25
|
+
options = map_options(options)
|
26
|
+
get("#{url}?#{options}")
|
27
|
+
end
|
28
|
+
|
29
|
+
# Get the directly included groups of a group
|
30
|
+
#
|
31
|
+
# @return [Array] the included groups
|
32
|
+
def included_groups(group_id)
|
33
|
+
url = "/groups/#{group_id}/groups/"
|
19
34
|
get(url)
|
20
35
|
end
|
21
36
|
|
@@ -7,8 +7,8 @@ module Gerry
|
|
7
7
|
def projects
|
8
8
|
get('/projects/')
|
9
9
|
end
|
10
|
-
|
11
|
-
# Get the projects that start with the specified prefix
|
10
|
+
|
11
|
+
# Get the projects that start with the specified prefix
|
12
12
|
# and accessible by the caller.
|
13
13
|
#
|
14
14
|
# @param [String] name the project name.
|
@@ -16,6 +16,28 @@ module Gerry
|
|
16
16
|
def find_project(name)
|
17
17
|
get("/projects/#{name}")
|
18
18
|
end
|
19
|
+
|
20
|
+
# Get the symbolic HEAD ref for the specified project.
|
21
|
+
#
|
22
|
+
# @param [String] project the project name.
|
23
|
+
# @return [String] the current ref to which HEAD points to.
|
24
|
+
def get_head(project)
|
25
|
+
get("/projects/#{project}/HEAD")
|
26
|
+
end
|
27
|
+
|
28
|
+
# Set the symbolic HEAD ref for the specified project to
|
29
|
+
# point to the specified branch.
|
30
|
+
#
|
31
|
+
# @param [String] project the project name.
|
32
|
+
# @param [String] branch the branch to point to.
|
33
|
+
# @return [String] the new ref to which HEAD points to.
|
34
|
+
def set_head(project, branch)
|
35
|
+
url = "/projects/#{project}/HEAD"
|
36
|
+
body = {
|
37
|
+
ref: 'refs/heads/' + branch
|
38
|
+
}
|
39
|
+
put(url, body)
|
40
|
+
end
|
19
41
|
end
|
20
42
|
end
|
21
|
-
end
|
43
|
+
end
|
data/lib/gerry/client/request.rb
CHANGED
@@ -27,14 +27,14 @@ module Gerry
|
|
27
27
|
def put(url, body)
|
28
28
|
if @username && @password
|
29
29
|
auth = { username: @username, password: @password }
|
30
|
-
response = self.class.put("/a#{url}",
|
31
|
-
body: body.to_json,
|
30
|
+
response = self.class.put("/a#{url}",
|
31
|
+
body: body.to_json,
|
32
32
|
headers: { 'Content-Type' => 'application/json' },
|
33
33
|
digest_auth: auth
|
34
34
|
)
|
35
35
|
parse(response)
|
36
36
|
else
|
37
|
-
response = self.class.put(url,
|
37
|
+
response = self.class.put(url,
|
38
38
|
body: body.to_json,
|
39
39
|
headers: { 'Content-Type' => 'application/json' }
|
40
40
|
)
|
@@ -45,14 +45,14 @@ module Gerry
|
|
45
45
|
def post(url, body)
|
46
46
|
if @username && @password
|
47
47
|
auth = { username: @username, password: @password }
|
48
|
-
response = self.class.post("/a#{url}",
|
49
|
-
body: body.to_json,
|
48
|
+
response = self.class.post("/a#{url}",
|
49
|
+
body: body.to_json,
|
50
50
|
headers: { 'Content-Type' => 'application/json' },
|
51
51
|
digest_auth: auth
|
52
52
|
)
|
53
53
|
parse(response)
|
54
54
|
else
|
55
|
-
response = self.class.post(url,
|
55
|
+
response = self.class.post(url,
|
56
56
|
body: body.to_json,
|
57
57
|
headers: { 'Content-Type' => 'application/json' }
|
58
58
|
)
|
@@ -65,21 +65,27 @@ module Gerry
|
|
65
65
|
raise_request_error(response)
|
66
66
|
end
|
67
67
|
if response.body
|
68
|
-
|
68
|
+
source = remove_magic_prefix(response.body)
|
69
|
+
if source.lines.count == 1 && !source.start_with?('{') && !source.start_with?('[')
|
70
|
+
# Work around the JSON gem not being able to parse top-level values, see
|
71
|
+
# https://github.com/flori/json/issues/206.
|
72
|
+
source.gsub!(/^"|"$/, '')
|
73
|
+
else
|
74
|
+
JSON.parse(source)
|
75
|
+
end
|
69
76
|
else
|
70
77
|
nil
|
71
78
|
end
|
72
79
|
end
|
73
80
|
|
74
81
|
def raise_request_error(response)
|
75
|
-
|
76
|
-
raise RequestError.new("There was a request error! Response was: #{body}")
|
82
|
+
raise RequestError.new("There was a request error! Response was: #{response.message}")
|
77
83
|
end
|
78
84
|
|
79
85
|
def remove_magic_prefix(response_body)
|
80
86
|
# We need to strip the magic prefix from the first line of the response, see
|
81
87
|
# https://gerrit-review.googlesource.com/Documentation/rest-api.html#output.
|
82
|
-
response_body.sub(/^\)\]\}'$/, '')
|
88
|
+
response_body.sub(/^\)\]\}'$/, '').strip!
|
83
89
|
end
|
84
90
|
end
|
85
91
|
end
|
data/lib/gerry/client.rb
CHANGED
@@ -5,26 +5,28 @@ module Gerry
|
|
5
5
|
class Client
|
6
6
|
include HTTParty
|
7
7
|
headers 'Accept' => 'application/json'
|
8
|
-
|
8
|
+
|
9
|
+
require_relative 'client/access'
|
9
10
|
require_relative 'client/accounts'
|
10
11
|
require_relative 'client/changes'
|
11
12
|
require_relative 'client/groups'
|
12
13
|
require_relative 'client/projects'
|
13
14
|
require_relative 'client/request'
|
14
|
-
|
15
|
+
|
16
|
+
include Access
|
15
17
|
include Accounts
|
16
18
|
include Changes
|
17
19
|
include Groups
|
18
20
|
include Projects
|
19
21
|
include Request
|
20
|
-
|
22
|
+
|
21
23
|
def initialize(url, username = nil, password = nil)
|
22
24
|
self.class.base_uri(url)
|
23
|
-
|
24
|
-
if username && password
|
25
|
+
|
26
|
+
if username && password
|
25
27
|
@username = username
|
26
28
|
@password = password
|
27
29
|
end
|
28
30
|
end
|
29
31
|
end
|
30
|
-
end
|
32
|
+
end
|
data/lib/gerry/version.rb
CHANGED
data/spec/access_spec.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe '.list_access_rights' do
|
4
|
+
it 'lists the access rights for projects' do
|
5
|
+
projects = ['All-Projects', 'MyProject']
|
6
|
+
stub = stub_get("/access/?project=#{projects.join('&project=')}", 'access_rights.json')
|
7
|
+
|
8
|
+
client = MockGerry.new
|
9
|
+
access_rights = client.access(projects)
|
10
|
+
expect(stub).to have_been_requested
|
11
|
+
|
12
|
+
expect(access_rights['All-Projects']['revision']).to eq('edd453d18e08640e67a8c9a150cec998ed0ac9aa')
|
13
|
+
expect(access_rights['MyProject']['revision']).to eq('61157ed63e14d261b6dca40650472a9b0bd88474')
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,250 @@
|
|
1
|
+
)]}'
|
2
|
+
{
|
3
|
+
"All-Projects": {
|
4
|
+
"revision": "edd453d18e08640e67a8c9a150cec998ed0ac9aa",
|
5
|
+
"local": {
|
6
|
+
"GLOBAL_CAPABILITIES": {
|
7
|
+
"permissions": {
|
8
|
+
"priority": {
|
9
|
+
"rules": {
|
10
|
+
"15bfcd8a6de1a69c50b30cedcdcc951c15703152": {
|
11
|
+
"action": "BATCH"
|
12
|
+
}
|
13
|
+
}
|
14
|
+
},
|
15
|
+
"streamEvents": {
|
16
|
+
"rules": {
|
17
|
+
"15bfcd8a6de1a69c50b30cedcdcc951c15703152": {
|
18
|
+
"action": "ALLOW"
|
19
|
+
}
|
20
|
+
}
|
21
|
+
},
|
22
|
+
"administrateServer": {
|
23
|
+
"rules": {
|
24
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
25
|
+
"action": "ALLOW"
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
},
|
31
|
+
"refs/meta/config": {
|
32
|
+
"permissions": {
|
33
|
+
"submit": {
|
34
|
+
"rules": {
|
35
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
36
|
+
"action": "ALLOW"
|
37
|
+
},
|
38
|
+
"global:Project-Owners": {
|
39
|
+
"action": "ALLOW"
|
40
|
+
}
|
41
|
+
}
|
42
|
+
},
|
43
|
+
"label-Code-Review": {
|
44
|
+
"label": "Code-Review",
|
45
|
+
"rules": {
|
46
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
47
|
+
"action": "ALLOW",
|
48
|
+
"min": -2,
|
49
|
+
"max": 2
|
50
|
+
},
|
51
|
+
"global:Project-Owners": {
|
52
|
+
"action": "ALLOW",
|
53
|
+
"min": -2,
|
54
|
+
"max": 2
|
55
|
+
}
|
56
|
+
}
|
57
|
+
},
|
58
|
+
"read": {
|
59
|
+
"exclusive": true,
|
60
|
+
"rules": {
|
61
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
62
|
+
"action": "ALLOW"
|
63
|
+
},
|
64
|
+
"global:Project-Owners": {
|
65
|
+
"action": "ALLOW"
|
66
|
+
}
|
67
|
+
}
|
68
|
+
},
|
69
|
+
"push": {
|
70
|
+
"rules": {
|
71
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
72
|
+
"action": "ALLOW"
|
73
|
+
},
|
74
|
+
"global:Project-Owners": {
|
75
|
+
"action": "ALLOW"
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
}
|
80
|
+
},
|
81
|
+
"refs/for/refs/*": {
|
82
|
+
"permissions": {
|
83
|
+
"pushMerge": {
|
84
|
+
"rules": {
|
85
|
+
"global:Registered-Users": {
|
86
|
+
"action": "ALLOW"
|
87
|
+
}
|
88
|
+
}
|
89
|
+
},
|
90
|
+
"push": {
|
91
|
+
"rules": {
|
92
|
+
"global:Registered-Users": {
|
93
|
+
"action": "ALLOW"
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
},
|
99
|
+
"refs/tags/*": {
|
100
|
+
"permissions": {
|
101
|
+
"pushSignedTag": {
|
102
|
+
"rules": {
|
103
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
104
|
+
"action": "ALLOW"
|
105
|
+
},
|
106
|
+
"global:Project-Owners": {
|
107
|
+
"action": "ALLOW"
|
108
|
+
}
|
109
|
+
}
|
110
|
+
},
|
111
|
+
"pushTag": {
|
112
|
+
"rules": {
|
113
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
114
|
+
"action": "ALLOW"
|
115
|
+
},
|
116
|
+
"global:Project-Owners": {
|
117
|
+
"action": "ALLOW"
|
118
|
+
}
|
119
|
+
}
|
120
|
+
}
|
121
|
+
}
|
122
|
+
},
|
123
|
+
"refs/heads/*": {
|
124
|
+
"permissions": {
|
125
|
+
"forgeCommitter": {
|
126
|
+
"rules": {
|
127
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
128
|
+
"action": "ALLOW"
|
129
|
+
},
|
130
|
+
"global:Project-Owners": {
|
131
|
+
"action": "ALLOW"
|
132
|
+
}
|
133
|
+
}
|
134
|
+
},
|
135
|
+
"forgeAuthor": {
|
136
|
+
"rules": {
|
137
|
+
"global:Registered-Users": {
|
138
|
+
"action": "ALLOW"
|
139
|
+
}
|
140
|
+
}
|
141
|
+
},
|
142
|
+
"submit": {
|
143
|
+
"rules": {
|
144
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
145
|
+
"action": "ALLOW"
|
146
|
+
},
|
147
|
+
"global:Project-Owners": {
|
148
|
+
"action": "ALLOW"
|
149
|
+
}
|
150
|
+
}
|
151
|
+
},
|
152
|
+
"editTopicName": {
|
153
|
+
"rules": {
|
154
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
155
|
+
"action": "ALLOW",
|
156
|
+
"force": true
|
157
|
+
},
|
158
|
+
"global:Project-Owners": {
|
159
|
+
"action": "ALLOW",
|
160
|
+
"force": true
|
161
|
+
}
|
162
|
+
}
|
163
|
+
},
|
164
|
+
"label-Code-Review": {
|
165
|
+
"label": "Code-Review",
|
166
|
+
"rules": {
|
167
|
+
"global:Registered-Users": {
|
168
|
+
"action": "ALLOW",
|
169
|
+
"min": -1,
|
170
|
+
"max": 1
|
171
|
+
},
|
172
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
173
|
+
"action": "ALLOW",
|
174
|
+
"min": -2,
|
175
|
+
"max": 2
|
176
|
+
},
|
177
|
+
"global:Project-Owners": {
|
178
|
+
"action": "ALLOW",
|
179
|
+
"min": -2,
|
180
|
+
"max": 2
|
181
|
+
}
|
182
|
+
}
|
183
|
+
},
|
184
|
+
"create": {
|
185
|
+
"rules": {
|
186
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
187
|
+
"action": "ALLOW"
|
188
|
+
},
|
189
|
+
"global:Project-Owners": {
|
190
|
+
"action": "ALLOW"
|
191
|
+
}
|
192
|
+
}
|
193
|
+
},
|
194
|
+
"push": {
|
195
|
+
"rules": {
|
196
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
197
|
+
"action": "ALLOW"
|
198
|
+
},
|
199
|
+
"global:Project-Owners": {
|
200
|
+
"action": "ALLOW"
|
201
|
+
}
|
202
|
+
}
|
203
|
+
}
|
204
|
+
}
|
205
|
+
},
|
206
|
+
"refs/*": {
|
207
|
+
"permissions": {
|
208
|
+
"read": {
|
209
|
+
"rules": {
|
210
|
+
"global:Anonymous-Users": {
|
211
|
+
"action": "ALLOW"
|
212
|
+
},
|
213
|
+
"53a4f647a89ea57992571187d8025f830625192a": {
|
214
|
+
"action": "ALLOW"
|
215
|
+
}
|
216
|
+
}
|
217
|
+
}
|
218
|
+
}
|
219
|
+
}
|
220
|
+
},
|
221
|
+
"is_owner": true,
|
222
|
+
"owner_of": [
|
223
|
+
"GLOBAL_CAPABILITIES",
|
224
|
+
"refs/meta/config",
|
225
|
+
"refs/for/refs/*",
|
226
|
+
"refs/tags/*",
|
227
|
+
"refs/heads/*",
|
228
|
+
"refs/*"
|
229
|
+
],
|
230
|
+
"can_upload": true,
|
231
|
+
"can_add": true,
|
232
|
+
"config_visible": true
|
233
|
+
},
|
234
|
+
"MyProject": {
|
235
|
+
"revision": "61157ed63e14d261b6dca40650472a9b0bd88474",
|
236
|
+
"inherits_from": {
|
237
|
+
"id": "All-Projects",
|
238
|
+
"name": "All-Projects",
|
239
|
+
"description": "Access inherited by all other projects."
|
240
|
+
},
|
241
|
+
"local": {},
|
242
|
+
"is_owner": true,
|
243
|
+
"owner_of": [
|
244
|
+
"refs/*"
|
245
|
+
],
|
246
|
+
"can_upload": true,
|
247
|
+
"can_add": true,
|
248
|
+
"config_visible": true
|
249
|
+
}
|
250
|
+
}
|
data/spec/fixtures/projects.json
CHANGED
data/spec/projects_spec.rb
CHANGED
@@ -1,26 +1,54 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe '.projects' do
|
3
|
+
describe '.projects' do
|
4
4
|
it 'should fetch all projects' do
|
5
|
-
stub = stub_get('/projects/', 'projects.json')
|
6
|
-
|
5
|
+
stub = stub_get('/projects/', 'projects.json')
|
6
|
+
|
7
7
|
client = MockGerry.new
|
8
8
|
projects = client.projects
|
9
|
-
|
9
|
+
|
10
10
|
expect(stub).to have_been_requested
|
11
|
-
|
11
|
+
|
12
12
|
expect(projects['awesome']['description']).to eq('Awesome project')
|
13
13
|
expect(projects['clean']['description']).to eq('Clean code!')
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
it 'should fetch a project' do
|
17
|
-
stub = stub_get('/projects/awesome', 'projects.json')
|
18
|
-
|
17
|
+
stub = stub_get('/projects/awesome', 'projects.json')
|
18
|
+
|
19
19
|
client = MockGerry.new
|
20
20
|
projects = client.find_project('awesome')
|
21
|
-
|
21
|
+
|
22
22
|
expect(stub).to have_been_requested
|
23
|
-
|
23
|
+
|
24
24
|
expect(projects['awesome']['description']).to eq('Awesome project')
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
|
+
it 'should resolve the symbolic HEAD ref of a project' do
|
28
|
+
project = 'awesome'
|
29
|
+
stub = stub_get("/projects/#{project}/HEAD", 'project_head.json')
|
30
|
+
|
31
|
+
client = MockGerry.new
|
32
|
+
branch = client.get_head(project)
|
33
|
+
|
34
|
+
expect(stub).to have_been_requested
|
35
|
+
|
36
|
+
expect(branch).to eq('refs/heads/stable')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should define the symbolic HEAD ref of a project' do
|
40
|
+
project = 'awesome'
|
41
|
+
branch = 'stable'
|
42
|
+
input = {
|
43
|
+
ref: 'refs/heads/' + branch
|
44
|
+
}
|
45
|
+
stub = stub_put("/projects/#{project}/HEAD", input.to_json, get_fixture('project_head.json'))
|
46
|
+
|
47
|
+
client = MockGerry.new
|
48
|
+
new_branch = client.set_head(project, branch)
|
49
|
+
|
50
|
+
expect(stub).to have_been_requested
|
51
|
+
|
52
|
+
expect(new_branch).to eq('refs/heads/' + branch)
|
53
|
+
end
|
54
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gerry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fabian Mettler
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-08-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
@@ -135,20 +135,24 @@ files:
|
|
135
135
|
- Rakefile
|
136
136
|
- lib/gerry.rb
|
137
137
|
- lib/gerry/client.rb
|
138
|
+
- lib/gerry/client/access.rb
|
138
139
|
- lib/gerry/client/accounts.rb
|
139
140
|
- lib/gerry/client/changes.rb
|
140
141
|
- lib/gerry/client/groups.rb
|
141
142
|
- lib/gerry/client/projects.rb
|
142
143
|
- lib/gerry/client/request.rb
|
143
144
|
- lib/gerry/version.rb
|
145
|
+
- spec/access_spec.rb
|
144
146
|
- spec/accounts_spec.rb
|
145
147
|
- spec/changes_spec.rb
|
148
|
+
- spec/fixtures/access_rights.json
|
146
149
|
- spec/fixtures/account_groups.json
|
147
150
|
- spec/fixtures/capabilities.json
|
148
151
|
- spec/fixtures/changes.json
|
149
152
|
- spec/fixtures/group_members.json
|
150
153
|
- spec/fixtures/groups.json
|
151
154
|
- spec/fixtures/open_changes.json
|
155
|
+
- spec/fixtures/project_head.json
|
152
156
|
- spec/fixtures/projects.json
|
153
157
|
- spec/fixtures/query_capabilities.json
|
154
158
|
- spec/groups_spec.rb
|
@@ -179,14 +183,17 @@ signing_key:
|
|
179
183
|
specification_version: 4
|
180
184
|
summary: Simple Ruby wrapper for the Gerrit Code Review REST-API.
|
181
185
|
test_files:
|
186
|
+
- spec/access_spec.rb
|
182
187
|
- spec/accounts_spec.rb
|
183
188
|
- spec/changes_spec.rb
|
189
|
+
- spec/fixtures/access_rights.json
|
184
190
|
- spec/fixtures/account_groups.json
|
185
191
|
- spec/fixtures/capabilities.json
|
186
192
|
- spec/fixtures/changes.json
|
187
193
|
- spec/fixtures/group_members.json
|
188
194
|
- spec/fixtures/groups.json
|
189
195
|
- spec/fixtures/open_changes.json
|
196
|
+
- spec/fixtures/project_head.json
|
190
197
|
- spec/fixtures/projects.json
|
191
198
|
- spec/fixtures/query_capabilities.json
|
192
199
|
- spec/groups_spec.rb
|